]> git.r.bdr.sh - rbdr/dotfiles/commitdiff
Adds atom packages
authorBen Beltran <redacted>
Mon, 28 Sep 2015 17:39:59 +0000 (12:39 -0500)
committerBen Beltran <redacted>
Mon, 28 Sep 2015 17:39:59 +0000 (12:39 -0500)
1118 files changed:
atom/.apm/.apmrc
atom/.apm/api-notation/1.0.2/package.tgz [new file with mode: 0644]
atom/.apm/api-notation/1.0.2/package/package.json [new file with mode: 0644]
atom/.apm/async/0.2.10/package/package.json
atom/.apm/atom-space-pen-views/2.1.0/package.tgz [new file with mode: 0644]
atom/.apm/atom-space-pen-views/2.1.0/package/package.json [new file with mode: 0644]
atom/.apm/emissary/1.3.3/package/package.json
atom/.apm/event-kit/0.7.2/package/package.json
atom/.apm/ex-mode/0.7.0/package.tgz [new file with mode: 0644]
atom/.apm/ex-mode/0.7.0/package/package.json [new file with mode: 0644]
atom/.apm/fs-plus/2.8.1/package/package.json
atom/.apm/fuzzaldrin/2.1.0/package/package.json
atom/.apm/grim/0.12.0/package/package.json
atom/.apm/grim/1.4.2/package.tgz [new file with mode: 0644]
atom/.apm/grim/1.4.2/package/package.json [new file with mode: 0644]
atom/.apm/jquery/2.1.4/package/package.json
atom/.apm/mixto/1.0.0/package/package.json
atom/.apm/mkdirp/0.3.5/package/package.json
atom/.apm/property-accessors/1.1.3/package/package.json
atom/.apm/registry.npmjs.org/async/.cache.json
atom/.apm/registry.npmjs.org/atom-space-pen-views/.cache.json
atom/.apm/registry.npmjs.org/es6-weak-map/.cache.json
atom/.apm/registry.npmjs.org/event-kit/.cache.json
atom/.apm/registry.npmjs.org/fs-plus/.cache.json
atom/.apm/registry.npmjs.org/grim/.cache.json
atom/.apm/registry.npmjs.org/jquery/.cache.json
atom/.apm/registry.npmjs.org/mkdirp/.cache.json
atom/.apm/registry.npmjs.org/rimraf/.cache.json
atom/.apm/registry.npmjs.org/underscore/.cache.json
atom/.apm/rimraf/2.2.8/package/package.json
atom/.apm/space-pen/5.1.1/package/package.json
atom/.apm/underscore-plus/1.6.6/package/package.json
atom/.apm/vim-mode-visual-block/0.2.13/package.tgz [new file with mode: 0644]
atom/.apm/vim-mode-visual-block/0.2.13/package/package.json [new file with mode: 0644]
atom/.apm/vim-mode-visual-block/0.2.8/package.tgz [new file with mode: 0644]
atom/.apm/vim-mode-visual-block/0.2.8/package/package.json [new file with mode: 0644]
atom/.apm/vim-mode/0.55.0/package.tgz [new file with mode: 0644]
atom/.apm/vim-mode/0.55.0/package/package.json [new file with mode: 0644]
atom/.apm/vim-mode/0.60.0/package.tgz [new file with mode: 0644]
atom/.apm/vim-mode/0.60.0/package/package.json [new file with mode: 0644]
atom/.apm/vim-surround/0.8.0/package.tgz [new file with mode: 0644]
atom/.apm/vim-surround/0.8.0/package/package.json [new file with mode: 0644]
atom/packages/api-notation/.npmignore [new file with mode: 0644]
atom/packages/api-notation/CHANGELOG.md [new file with mode: 0644]
atom/packages/api-notation/LICENSE.md [new file with mode: 0644]
atom/packages/api-notation/README.md [new file with mode: 0644]
atom/packages/api-notation/example-syntax.api [new file with mode: 0644]
atom/packages/api-notation/grammars/api-notation.cson [new file with mode: 0644]
atom/packages/api-notation/package.json [new file with mode: 0644]
atom/packages/ex-mode/.travis.yml [new file with mode: 0644]
atom/packages/ex-mode/CHANGELOG.md
atom/packages/ex-mode/lib/ex-normal-mode-input-element.coffee [moved from atom/packages/ex-mode/lib/ex-command-mode-input-element.coffee with 100% similarity]
atom/packages/ex-mode/lib/ex-state.coffee
atom/packages/ex-mode/lib/ex.coffee
atom/packages/ex-mode/lib/view-model.coffee
atom/packages/ex-mode/lib/vim-option.coffee [new file with mode: 0644]
atom/packages/ex-mode/node_modules/atom-space-pen-views/README.md
atom/packages/ex-mode/node_modules/atom-space-pen-views/lib/text-editor-view.js
atom/packages/ex-mode/node_modules/atom-space-pen-views/node_modules/fuzzaldrin/package.json
atom/packages/ex-mode/node_modules/atom-space-pen-views/package.json
atom/packages/ex-mode/node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/mixto/package.json
atom/packages/ex-mode/node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/property-accessors/package.json
atom/packages/ex-mode/node_modules/event-kit/node_modules/grim/node_modules/emissary/package.json
atom/packages/ex-mode/node_modules/event-kit/node_modules/grim/package.json
atom/packages/ex-mode/node_modules/event-kit/package.json
atom/packages/ex-mode/node_modules/fs-plus/LICENSE.md [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/LICENSE.md with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/README.md [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/README.md with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/lib/fs-plus.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/lib/fs-plus.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/.bin/rimraf [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/.bin/rimraf with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/async/LICENSE [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/async/LICENSE with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/async/README.md [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/async/README.md with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/async/component.json [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/async/component.json with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/async/lib/async.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/async/lib/async.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/async/package.json [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/async/package.json with 89% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/.npmignore [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/.npmignore with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/.travis.yml [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/.travis.yml with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/LICENSE [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/LICENSE with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/examples/pow.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/examples/pow.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/index.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/index.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/package.json [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/package.json with 79% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/readme.markdown [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/readme.markdown with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/test/chmod.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/test/chmod.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/test/clobber.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/test/clobber.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/test/mkdirp.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/test/mkdirp.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/test/perm.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/test/perm.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/test/perm_sync.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/test/perm_sync.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/test/race.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/test/race.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/test/rel.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/test/rel.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/test/return.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/test/return.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/test/return_sync.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/test/return_sync.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/test/root.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/test/root.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/test/sync.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/test/sync.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/test/umask.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/test/umask.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/test/umask_sync.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/test/umask_sync.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/rimraf/AUTHORS [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/rimraf/AUTHORS with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/rimraf/LICENSE [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/rimraf/LICENSE with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/rimraf/README.md [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/rimraf/README.md with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/rimraf/bin.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/rimraf/bin.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/rimraf/package.json [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/rimraf/package.json with 97% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/rimraf/rimraf.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/rimraf/rimraf.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/rimraf/test/run.sh [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/rimraf/test/run.sh with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/rimraf/test/setup.sh [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/rimraf/test/setup.sh with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/rimraf/test/test-async.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/rimraf/test/test-async.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/node_modules/rimraf/test/test-sync.js [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/rimraf/test/test-sync.js with 100% similarity]
atom/packages/ex-mode/node_modules/fs-plus/package.json [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/package.json with 92% similarity]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/lib/deprecation.js
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/README.md [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/index.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/.bin/cake [deleted symlink]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/.bin/coffee [deleted symlink]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/.npmignore [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/CNAME [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/CONTRIBUTING.md [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/LICENSE [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/README [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/README.md [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/bin/cake [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/bin/coffee [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/browser.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/cake.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/coffee-script.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/command.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/grammar.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/helpers.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/index.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/lexer.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/nodes.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/optparse.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/parser.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/register.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/repl.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/rewriter.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/scope.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/sourcemap.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/package.json [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/package.json [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/register.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/repl.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/.npmignore [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/.travis.yml [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/examples/pow.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/index.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/readme.markdown [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/chmod.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/clobber.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/mkdirp.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/perm.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/perm_sync.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/race.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/rel.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/return.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/return_sync.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/root.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/sync.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/umask.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/umask_sync.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/.npmignore [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/.travis.yml [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/CHANGELOG.md [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/LICENSE [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/Makefile.dryice.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/README.md [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/assert-shim.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/mini-require.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/prefix-source-map.jsm [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/prefix-utils.jsm [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/suffix-browser.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/suffix-source-map.jsm [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/suffix-utils.jsm [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/test-prefix.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/test-suffix.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/array-set.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/base64-vlq.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/base64.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/binary-search.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/mapping-list.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/source-map-consumer.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/source-map-generator.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/source-node.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/util.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/LICENSE [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/README.md [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/amdefine.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/intercept.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/package.json [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/package.json [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/run-tests.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-api.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-array-set.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-base64-vlq.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-base64.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-binary-search.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-dog-fooding.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-source-map-consumer.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-source-map-generator.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-source-node.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-util.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/util.js [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/package.json [deleted file]
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/emissary/node_modules/mixto/package.json
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/emissary/node_modules/property-accessors/package.json
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/emissary/package.json
atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/package.json
atom/packages/ex-mode/node_modules/space-pen/node_modules/jquery/package.json
atom/packages/ex-mode/node_modules/space-pen/package.json
atom/packages/ex-mode/node_modules/underscore-plus/package.json
atom/packages/ex-mode/package.json
atom/packages/ex-mode/spec/ex-commands-spec.coffee [new file with mode: 0644]
atom/packages/ex-mode/spec/ex-mode-spec.coffee [deleted file]
atom/packages/ex-mode/spec/ex-mode-view-spec.coffee [deleted file]
atom/packages/ex-mode/spec/spec-helper.coffee [new file with mode: 0644]
atom/packages/ex-mode/styles/ex-mode.less
atom/packages/vim-mode-visual-block/CHANGELOG.md
atom/packages/vim-mode-visual-block/README.md
atom/packages/vim-mode-visual-block/lib/main.coffee
atom/packages/vim-mode-visual-block/node_modules/underscore-plus/package.json
atom/packages/vim-mode-visual-block/package.json
atom/packages/vim-mode/.travis.yml
atom/packages/vim-mode/CHANGELOG.md
atom/packages/vim-mode/README.md
atom/packages/vim-mode/docs/motions.md
atom/packages/vim-mode/docs/operators.md
atom/packages/vim-mode/docs/overview.md
atom/packages/vim-mode/docs/scrolling.md
atom/packages/vim-mode/keymaps/vim-mode.cson
atom/packages/vim-mode/lib/global-vim-state.coffee
atom/packages/vim-mode/lib/insert-mode.coffee [new file with mode: 0644]
atom/packages/vim-mode/lib/motions/find-motion.coffee
atom/packages/vim-mode/lib/motions/general-motions.coffee
atom/packages/vim-mode/lib/motions/move-to-mark-motion.coffee
atom/packages/vim-mode/lib/motions/search-motion.coffee
atom/packages/vim-mode/lib/operators/general-operators.coffee
atom/packages/vim-mode/lib/operators/indent-operators.coffee
atom/packages/vim-mode/lib/operators/input.coffee
atom/packages/vim-mode/lib/operators/put-operator.coffee
atom/packages/vim-mode/lib/operators/replace-operator.coffee
atom/packages/vim-mode/lib/prefixes.coffee
atom/packages/vim-mode/lib/scroll.coffee
atom/packages/vim-mode/lib/status-bar-manager.coffee
atom/packages/vim-mode/lib/text-objects.coffee
atom/packages/vim-mode/lib/utils.coffee
atom/packages/vim-mode/lib/view-models/search-view-model.coffee
atom/packages/vim-mode/lib/view-models/view-model.coffee
atom/packages/vim-mode/lib/view-models/vim-normal-mode-input-element.coffee [moved from atom/packages/vim-mode/lib/view-models/vim-command-mode-input-element.coffee with 58% similarity]
atom/packages/vim-mode/lib/vim-mode.coffee
atom/packages/vim-mode/lib/vim-state.coffee
atom/packages/vim-mode/node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/package.json
atom/packages/vim-mode/node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/package.json
atom/packages/vim-mode/node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/package.json
atom/packages/vim-mode/node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/package.json
atom/packages/vim-mode/node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/package.json
atom/packages/vim-mode/node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/mixto/package.json
atom/packages/vim-mode/node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/property-accessors/package.json
atom/packages/vim-mode/node_modules/event-kit/node_modules/grim/node_modules/emissary/package.json
atom/packages/vim-mode/node_modules/event-kit/node_modules/grim/package.json
atom/packages/vim-mode/node_modules/event-kit/package.json
atom/packages/vim-mode/node_modules/grim/LICENSE.md [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/README.md [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/lib/deprecation.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/lib/grim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/LICENSE.md [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/README.md [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/behavior.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/emissary.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/emitter.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/helpers.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/signal.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/subscriber.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/subscription.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/.lint [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/.npmignore [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/.travis.yml [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/CHANGES [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/LICENCE [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/README.md [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/is-native-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/is-weak-map.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/.lint [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/.npmignore [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/.travis.yml [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/CHANGES [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/LICENCE [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/README.md [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/auto-bind.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/lazy.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/package.json [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/test/auto-bind.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/test/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/test/lazy.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/.lint [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/.lintignore [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/.npmignore [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/.travis.yml [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/CHANGES [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/LICENSE [moved from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/LICENSE with 89% similarity]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/README.md [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/_compare-by-length.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/binary-search.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/clear.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/compact.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/contains.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/diff.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/e-index-of.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/e-last-index-of.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/exclusion.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/first-index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/first.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/flatten.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/for-each-right.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/group.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/indexes-of.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/intersection.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/is-copy.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/is-uniq.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/last-index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/last.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/remove.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/separate.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/some-right.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/uniq.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/_is-extensible.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/_sub-array-dummy-safe.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/_sub-array-dummy.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/generate.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/is-plain-array.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/to-array.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/valid-array.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/boolean/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/boolean/is-boolean.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/copy.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/days-in-month.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/floor-day.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/floor-month.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/floor-year.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/format.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/is-date.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/valid-date.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/#/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/#/throw.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/custom.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/is-error.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/valid-error.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/compose.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/copy.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/curry.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/lock.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/not.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/partial.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/spread.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/to-string-tokens.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/_define-length.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/constant.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/identity.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/invoke.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/is-arguments.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/is-function.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/noop.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/pluck.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/valid-function.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/global.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/for-each.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/is.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/validate-object.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/validate.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/_pack-ieee754.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/_unpack-ieee754.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/#/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/#/pad.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/epsilon/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/epsilon/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/epsilon/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-number.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/max-safe-integer/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/max-safe-integer/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/max-safe-integer/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/min-safe-integer/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/min-safe-integer/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/min-safe-integer/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/to-integer.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/to-pos-integer.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/to-uint32.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/_iterate.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/clear.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/compact.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/compare.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/copy-deep.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/copy.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/count.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/create.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/eq.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/every.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/filter.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/first-key.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/flatten.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/for-each.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/get-property-names.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-array-like.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-callable.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-copy-deep.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-copy.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-empty.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-object.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-plain-object.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/key-of.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/map-keys.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/map.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/mixin-prototypes.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/mixin.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/normalize-options.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/primitive-set.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/safe-traverse.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/serialize.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/some.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/to-array.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/unserialize.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/valid-callable.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/valid-object.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/valid-value.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-array-like-object.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-array-like.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-stringifiable-value.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-stringifiable.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/package.json [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/is-sticky.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/is-unicode.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/sticky/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/sticky/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/unicode/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/unicode/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/escape.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/is-reg-exp.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/valid-reg-exp.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/at.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/camel-to-hyphen.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/capitalize.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/case-insensitive-compare.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/hyphen-to-camel.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/indent.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/last.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/_data.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/pad.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/plain-replace-all.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/plain-replace.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/format-method.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/is-string.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/random-uniq.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/__tad.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/@@iterator/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/@@iterator/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/@@iterator/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/@@iterator/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/_compare-by-length.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/binary-search.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/clear.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/compact.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/concat/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/concat/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/concat/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/concat/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/contains.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/copy-within/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/copy-within/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/copy-within/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/copy-within/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/diff.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/e-index-of.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/e-last-index-of.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/entries/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/entries/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/entries/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/entries/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/exclusion.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/fill/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/fill/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/fill/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/fill/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/filter/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/filter/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/filter/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/filter/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find-index/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find-index/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find-index/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find-index/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/first-index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/first.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/flatten.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/for-each-right.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/group.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/indexes-of.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/intersection.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/is-copy.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/is-uniq.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/keys/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/keys/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/keys/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/keys/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/last-index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/last.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/map/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/map/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/map/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/map/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/remove.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/separate.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/slice/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/slice/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/slice/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/slice/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/some-right.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/splice/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/splice/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/splice/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/splice/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/uniq.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/values/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/values/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/values/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/values/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/__scopes.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/_is-extensible.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/_sub-array-dummy-safe.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/_sub-array-dummy.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/from/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/from/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/from/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/from/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/generate.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/is-plain-array.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/of/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/of/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/of/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/of/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/to-array.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/valid-array.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/boolean/is-boolean.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/copy.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/days-in-month.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/floor-day.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/floor-month.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/floor-year.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/format.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/is-date.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/valid-date.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/error/#/throw.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/error/custom.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/error/is-error.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/error/valid-error.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/compose.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/copy.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/curry.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/lock.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/not.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/partial.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/spread.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/to-string-tokens.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/_define-length.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/constant.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/identity.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/invoke.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/is-arguments.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/is-function.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/noop.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/pluck.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/valid-function.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/global.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/iterable/for-each.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/iterable/is.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/iterable/validate-object.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/iterable/validate.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/_pack-ieee754.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/_unpack-ieee754.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/acosh/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/acosh/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/acosh/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/acosh/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/asinh/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/asinh/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/asinh/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/asinh/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/atanh/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/atanh/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/atanh/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/atanh/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cbrt/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cbrt/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cbrt/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cbrt/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/clz32/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/clz32/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/clz32/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/clz32/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cosh/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cosh/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cosh/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cosh/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/expm1/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/expm1/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/expm1/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/expm1/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/fround/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/fround/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/fround/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/fround/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/hypot/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/hypot/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/hypot/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/hypot/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/imul/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/imul/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/imul/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/imul/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log10/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log10/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log10/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log10/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log1p/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log1p/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log1p/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log1p/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log2/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log2/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log2/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log2/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sign/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sign/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sign/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sign/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sinh/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sinh/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sinh/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sinh/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/tanh/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/tanh/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/tanh/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/tanh/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/trunc/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/trunc/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/trunc/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/trunc/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/#/pad.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/epsilon/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/epsilon/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/epsilon/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-finite/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-finite/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-finite/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-finite/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-integer/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-integer/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-integer/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-integer/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-nan/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-nan/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-nan/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-nan/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-number.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-safe-integer/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-safe-integer/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-safe-integer/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-safe-integer/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/max-safe-integer/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/max-safe-integer/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/max-safe-integer/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/min-safe-integer/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/min-safe-integer/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/min-safe-integer/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/to-integer.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/to-pos-integer.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/to-uint32.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/_iterate.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/clear.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/compact.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/compare.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/copy-deep.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/copy.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/count.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/create.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/eq.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/every.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/filter.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/first-key.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/flatten.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/for-each.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/get-property-names.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-array-like.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-callable.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-copy-deep.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-copy.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-empty.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-object.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-plain-object.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/key-of.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/map-keys.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/map.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/mixin-prototypes.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/mixin.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/normalize-options.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/primitive-set.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/safe-traverse.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/serialize.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/some.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/to-array.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/unserialize.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-callable.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-object.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-value.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-array-like-object.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-array-like.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-stringifiable-value.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-stringifiable.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/is-sticky.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/is-unicode.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/match/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/match/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/match/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/match/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/replace/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/replace/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/replace/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/replace/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/search/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/search/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/search/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/search/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/split/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/split/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/split/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/split/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/sticky/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/sticky/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/unicode/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/unicode/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/escape.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/is-reg-exp.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/valid-reg-exp.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/@@iterator/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/@@iterator/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/@@iterator/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/@@iterator/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/at.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/camel-to-hyphen.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/capitalize.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/case-insensitive-compare.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/code-point-at/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/code-point-at/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/code-point-at/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/code-point-at/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/contains/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/contains/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/contains/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/contains/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/ends-with/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/ends-with/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/ends-with/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/ends-with/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/hyphen-to-camel.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/indent.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/last.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize/_data.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/pad.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/plain-replace-all.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/plain-replace.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/repeat/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/repeat/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/repeat/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/repeat/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/starts-with/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/starts-with/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/starts-with/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/starts-with/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/format-method.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/from-code-point/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/from-code-point/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/from-code-point/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/from-code-point/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/is-string.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/random-uniq.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/raw/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/raw/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/raw/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/raw/shim.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/#/chain.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/.lint [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/.npmignore [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/.travis.yml [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/CHANGES [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/LICENSE [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/README.md [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/array.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/for-of.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/get.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/is-iterable.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/package.json [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/string.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/#/chain.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/array.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/for-of.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/get.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/is-iterable.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/string.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/valid-iterable.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/valid-iterable.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/.lint [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/.npmignore [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/.travis.yml [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/CHANGES [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/LICENSE [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/README.md [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/is-native-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/is-symbol.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/package.json [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/polyfill.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/is-native-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/is-symbol.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/polyfill.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/validate-symbol.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/validate-symbol.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/package.json [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/polyfill.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/implement.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/index.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/is-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/is-native-implemented.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/is-weak-map.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/polyfill.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/valid-weak-map.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/valid-weak-map.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/mixto/LICENSE.md [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/mixto/README.md [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/mixto/lib/mixin.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/mixto/package.json [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/property-accessors/LICENSE.md [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/property-accessors/README.md [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/property-accessors/lib/property-accessors.js [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/property-accessors/package.json [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/node_modules/emissary/package.json [new file with mode: 0644]
atom/packages/vim-mode/node_modules/grim/package.json [new file with mode: 0644]
atom/packages/vim-mode/node_modules/underscore-plus/node_modules/underscore/package.json
atom/packages/vim-mode/node_modules/underscore-plus/package.json
atom/packages/vim-mode/package.json
atom/packages/vim-mode/spec/insert-mode-spec.coffee [new file with mode: 0644]
atom/packages/vim-mode/spec/motions-spec.coffee
atom/packages/vim-mode/spec/operators-spec.coffee
atom/packages/vim-mode/spec/prefixes-spec.coffee
atom/packages/vim-mode/spec/scroll-spec.coffee
atom/packages/vim-mode/spec/spec-helper.coffee
atom/packages/vim-mode/spec/text-objects-spec.coffee
atom/packages/vim-mode/spec/vim-mode-spec.coffee
atom/packages/vim-mode/spec/vim-state-spec.coffee
atom/packages/vim-mode/styles/vim-mode.less
atom/packages/vim-surround/CHANGELOG.md
atom/packages/vim-surround/README.md
atom/packages/vim-surround/lib/command/change.coffee
atom/packages/vim-surround/lib/command/delete.coffee
atom/packages/vim-surround/lib/command/selector.coffee
atom/packages/vim-surround/lib/vim-surround.coffee
atom/packages/vim-surround/package.json

index d8961b25e11896fccaf71db9f91c52d2b9e35e83..678854003283666c694987d88362fd1ad7d72675 100644 (file)
@@ -2,4 +2,4 @@
 ; modifications will be lost the next time any apm command is run.
 ;
 ; You should instead edit your .apmrc config located in ~/.atom/.apmrc
 ; modifications will be lost the next time any apm command is run.
 ;
 ; You should instead edit your .apmrc config located in ~/.atom/.apmrc
-cache = /Users/benbeltran/.atom/.apm
+cache = /Users/benbeltran/.dotfiles/atom/.apm
diff --git a/atom/.apm/api-notation/1.0.2/package.tgz b/atom/.apm/api-notation/1.0.2/package.tgz
new file mode 100644 (file)
index 0000000..09aa42f
Binary files /dev/null and b/atom/.apm/api-notation/1.0.2/package.tgz differ
diff --git a/atom/.apm/api-notation/1.0.2/package/package.json b/atom/.apm/api-notation/1.0.2/package/package.json
new file mode 100644 (file)
index 0000000..1001366
--- /dev/null
@@ -0,0 +1 @@
+{"name":"api-notation","version":"1.0.2","description":"Syntax for API Notation, a simple shorthand to write library APIs","keywords":["syntax","theme","api"],"repository":{"type":"git","url":"git+https://github.com/rbdr/api-notation-atom.git"},"license":"MIT","engines":{"atom":">=1.0.0 <2.0.0"},"readme":"# API Notation Syntax for Atom\n\nThis is a grammar for api notation, a simple notation I've been using for\nannotating module APIs in specs and other documents.\n\n## Installing\n\n### From Command Line\n\n`apm install api-notation`\n\n### From GUI\n\n#### Open the Package Manager from Palette Manager\n\n1. Press `⌘⇧P` on OSX or `⌃⇧P` on Windows/Linux to open the palette manager\n2. Look for `Install Packages and Themes`\n\n#### Open the Package Manager from Preferences\n\n1. Go to `Atom -> Preferences` menu\n2. Go to `Install`\n\n#### Install it\n\n1. Search for `api-notation` in the search bar\n2. Click Install\n\n## Usage\n\nOpen a `.api` file, or set it as your syntax.\n\n## API Notation Reference\n\nThe most recent reference as of now is in this [gist][api-reference], so\ncheck that to be sure. But here's a reproduction of the notation.\n\n```\nNameOfClass.WithPossibleNamespace\n   + class property\n   - instance property\n  ~> listened events (socket)\n  +> listened events (class/module)\n  -> listened events (instance)\n  <~ dispatched events (socket)\n  <+ dispatched events(class/module)\n  <- dispatched events (instance)\n  :: class method\n   # instance method\n\nOther symbols\n  => returns\n->() callback return\n[xx] optional\n<xx> data type\n\nRecommended order: class first, then sockets, then instance. Internally:\nProperties, events, methods.\n\n// Anything after two forward slashes is a comment\n```\n\n## How does it look like?\n\nLike this.\n\n![Like this.][api-example]\n\n[api-reference]: https://gist.github.com/benbeltran/4694c46fcec131468e34\n[api-example]: https://i.imgur.com/5WXuf4u.png\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/rbdr/api-notation-atom/issues"},"homepage":"https://github.com/rbdr/api-notation-atom#readme","_id":"api-notation@1.0.2","_shasum":"307b0647acce54c74350a9d1257fae9ef9c964cd","_resolved":"file:../d-115828-94250-r4fn9v/package.tgz","_from":"../d-115828-94250-r4fn9v/package.tgz"}
\ No newline at end of file
index 29c25ca7c7b5bdec14040a85d428483514db7969..631369b28011195450628699b6616ec809095953 100644 (file)
@@ -1 +1 @@
-{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.10","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"_id":"async@0.2.10","dist":{"shasum":"b6bbe0b0674b9d719708ca38de8c237cb526c3d1","tarball":"http://registry.npmjs.org/async/-/async-0.2.10.tgz"},"_from":"async@>=0.2.9 <0.3.0","_npmVersion":"1.3.2","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{},"_shasum":"b6bbe0b0674b9d719708ca38de8c237cb526c3d1","_resolved":"https://registry.npmjs.org/async/-/async-0.2.10.tgz"}
\ No newline at end of file
+{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.10","repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"_id":"async@0.2.10","dist":{"shasum":"b6bbe0b0674b9d719708ca38de8c237cb526c3d1","tarball":"http://registry.npmjs.org/async/-/async-0.2.10.tgz"},"_from":"async@>=0.2.9 <0.3.0","_npmVersion":"1.3.2","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{},"_shasum":"b6bbe0b0674b9d719708ca38de8c237cb526c3d1","_resolved":"https://registry.npmjs.org/async/-/async-0.2.10.tgz","readme":"ERROR: No README data found!","homepage":"https://github.com/caolan/async#readme"}
\ No newline at end of file
diff --git a/atom/.apm/atom-space-pen-views/2.1.0/package.tgz b/atom/.apm/atom-space-pen-views/2.1.0/package.tgz
new file mode 100644 (file)
index 0000000..09ac35e
Binary files /dev/null and b/atom/.apm/atom-space-pen-views/2.1.0/package.tgz differ
diff --git a/atom/.apm/atom-space-pen-views/2.1.0/package/package.json b/atom/.apm/atom-space-pen-views/2.1.0/package/package.json
new file mode 100644 (file)
index 0000000..d855019
--- /dev/null
@@ -0,0 +1 @@
+{"name":"atom-space-pen-views","version":"2.1.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{"prepublish":"grunt clean lint coffee"},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","space-pen":"^5.0.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"75ccee886e723a7a4913a4286e089225eec8834d","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@2.1.0","_shasum":"688e73a04a1cc0f5a41c254c6875e72d58faffb1","_from":"atom-space-pen-views@>=2.0.4 <3.0.0","_npmVersion":"1.4.23","_npmUser":{"name":"benogle","email":"ogle.ben@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"688e73a04a1cc0f5a41c254c6875e72d58faffb1","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.1.0.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.1.0.tgz"}
\ No newline at end of file
index 8bf554a9d7c20b7306fee740c69c79391d5bc58d..1056241f9d06f0137a629b724c7794f03fd4c306 100644 (file)
@@ -1 +1 @@
-{"name":"emissary","version":"1.3.3","description":"Utility mixins for subscribing to and emitting events.","main":"lib/emissary.js","scripts":{"test":"grunt test","prepublish":"grunt clean lint coffee"},"repository":{"type":"git","url":"http://github.com/atom/emissary.git"},"bugs":{"url":"https://github.com/atom/emissary/issues"},"homepage":"http://atom.github.io/emissary","keywords":["event-emitter","events","subscribe","subscriber"],"author":{"name":"Nathan Sobo"},"licenses":[{"type":"MIT","url":"http://github.com/atom/emissary/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"1.x","mixto":"1.x","property-accessors":"^1.1","es6-weak-map":"^0.1.2"},"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","rimraf":"~2.2.2"},"gitHead":"13170d3e1f8b1cd4396d6dceb3c3bccf0887dae2","_id":"emissary@1.3.3","_shasum":"a618d92d682b232d31111dc3625a5df661799606","_from":"emissary@>=1.2.0 <2.0.0","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"a618d92d682b232d31111dc3625a5df661799606","tarball":"http://registry.npmjs.org/emissary/-/emissary-1.3.3.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/emissary/-/emissary-1.3.3.tgz","readme":"ERROR: No README data found!"}
\ No newline at end of file
+{"name":"emissary","version":"1.3.3","description":"Utility mixins for subscribing to and emitting events.","main":"lib/emissary.js","scripts":{"test":"grunt test","prepublish":"grunt clean lint coffee"},"repository":{"type":"git","url":"git+ssh://git@github.com/atom/emissary.git"},"bugs":{"url":"https://github.com/atom/emissary/issues"},"homepage":"http://atom.github.io/emissary","keywords":["event-emitter","events","subscribe","subscriber"],"author":{"name":"Nathan Sobo"},"licenses":[{"type":"MIT","url":"http://github.com/atom/emissary/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"1.x","mixto":"1.x","property-accessors":"^1.1","es6-weak-map":"^0.1.2"},"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","rimraf":"~2.2.2"},"gitHead":"13170d3e1f8b1cd4396d6dceb3c3bccf0887dae2","_id":"emissary@1.3.3","_shasum":"a618d92d682b232d31111dc3625a5df661799606","_from":"emissary@>=1.2.0 <2.0.0","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"a618d92d682b232d31111dc3625a5df661799606","tarball":"http://registry.npmjs.org/emissary/-/emissary-1.3.3.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/emissary/-/emissary-1.3.3.tgz","readme":"ERROR: No README data found!"}
\ No newline at end of file
index 87c4791ca71d445a7b1d6ef789ce27398859aa79..5ce582463c48184ac2e88206aad756f677faaac9 100644 (file)
@@ -1 +1 @@
-{"name":"event-kit","version":"0.7.2","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"997b618b19566d5740c77507492528c52b5edb6a","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.7.2","_shasum":"331f5c36fde2ebd6413b69b56633e2b6b5cf9e60","_from":"event-kit@>=0.7.2 <0.8.0","_npmVersion":"1.4.23","_npmUser":{"name":"benogle","email":"ogle.ben@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"331f5c36fde2ebd6413b69b56633e2b6b5cf9e60","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.7.2.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/event-kit/-/event-kit-0.7.2.tgz","readme":"ERROR: No README data found!"}
\ No newline at end of file
+{"name":"event-kit","version":"0.7.2","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"git+https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"997b618b19566d5740c77507492528c52b5edb6a","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.7.2","_shasum":"331f5c36fde2ebd6413b69b56633e2b6b5cf9e60","_from":"event-kit@>=0.7.2 <0.8.0","_npmVersion":"1.4.23","_npmUser":{"name":"benogle","email":"ogle.ben@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"331f5c36fde2ebd6413b69b56633e2b6b5cf9e60","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.7.2.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/event-kit/-/event-kit-0.7.2.tgz","readme":"ERROR: No README data found!"}
\ No newline at end of file
diff --git a/atom/.apm/ex-mode/0.7.0/package.tgz b/atom/.apm/ex-mode/0.7.0/package.tgz
new file mode 100644 (file)
index 0000000..8f9f069
Binary files /dev/null and b/atom/.apm/ex-mode/0.7.0/package.tgz differ
diff --git a/atom/.apm/ex-mode/0.7.0/package/package.json b/atom/.apm/ex-mode/0.7.0/package/package.json
new file mode 100644 (file)
index 0000000..e24c55b
--- /dev/null
@@ -0,0 +1 @@
+{"name":"ex-mode","main":"./lib/ex-mode","version":"0.7.0","description":"Ex for Atom's vim-mode","activationCommands":{"atom-workspace":"ex-mode:open"},"repository":{"type":"git","url":"git+https://github.com/lloeki/ex-mode.git"},"license":"MIT","engines":{"atom":">=0.200.0 <2.0.0"},"dependencies":{"underscore-plus":"1.x","event-kit":"^0.7.2","space-pen":"^5.1.1","atom-space-pen-views":"^2.0.4","fs-plus":"^2.2.8"},"consumedServices":{"vim-mode":{"versions":{"^0.1.0":"consumeVim"}}},"providedServices":{"ex-mode":{"description":"Ex commands","versions":{"0.20.0":"provideEx"}}},"devDependencies":{"node-uuid":"^1.4.2"},"readme":"# ex-mode package\n\nex-mode for Atom's vim-mode\n\n## Use\n\nInstall both [vim-mode](https://github.com/atom/vim-mode) and ex-mode. Type `:` in command mode. Enter `w` or `write`.\n\n## Extend\n\nUse the service to register commands, from your own package, or straight from `init.coffee`:\n\n```coffee\n# in Atom's init.coffee\natom.packages.onDidActivatePackage (pack) ->\n  if pack.name == 'ex-mode'\n    Ex = pack.mainModule.provideEx()\n    Ex.registerCommand 'z', -> console.log(\"Zzzzzz...\")\n```\n\nSee `lib/ex.coffee` for some examples commands. Contributions are very welcome!\n\n## Status\n\nGroundwork is done. More ex commands are easy to add and will be coming as time permits and contributions come in.\n\n## License\n\nMIT\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/lloeki/ex-mode/issues"},"homepage":"https://github.com/lloeki/ex-mode#readme","_id":"ex-mode@0.7.0","_shasum":"afecba0f6a689e6d14f919493c5eb36450897552","_resolved":"file:../d-115828-94470-1t5wlla/package.tgz","_from":"../d-115828-94470-1t5wlla/package.tgz"}
\ No newline at end of file
index 57223918165cabdb711e670c5dc3bb4c743de394..06d2692fc3f881d0753de7bbf741f3476df9cdec 100644 (file)
@@ -1 +1 @@
-{"name":"fs-plus","version":"2.8.1","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.8.1"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"eb4915c02f09427b1bb002b886a9cfc34a262e1f","_id":"fs-plus@2.8.1","_shasum":"60bcae0d2066f4bb4726f23add525dada80630f6","_from":"fs-plus@>=2.5.0 <3.0.0","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"60bcae0d2066f4bb4726f23add525dada80630f6","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.8.1.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/fs-plus/-/fs-plus-2.8.1.tgz"}
\ No newline at end of file
+{"name":"fs-plus","version":"2.8.1","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"git+https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.8.1"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"eb4915c02f09427b1bb002b886a9cfc34a262e1f","_id":"fs-plus@2.8.1","_shasum":"60bcae0d2066f4bb4726f23add525dada80630f6","_from":"fs-plus@>=2.2.8 <3.0.0","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"60bcae0d2066f4bb4726f23add525dada80630f6","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.8.1.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/fs-plus/-/fs-plus-2.8.1.tgz","readme":"ERROR: No README data found!"}
\ No newline at end of file
index ac06b33cfd421d3b5a090aeecdc27398f4f62f90..921a942bb7e0354341cb2970574150c693817dec 100644 (file)
@@ -1 +1 @@
-{"name":"fuzzaldrin","version":"2.1.0","description":"Fuzzy filtering and string scoring","licenses":[{"type":"MIT","url":"http://github.com/atom/fuzzaldrin/raw/master/LICENSE.md"}],"main":"./lib/fuzzaldrin.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test","benchmark":"coffee benchmark/benchmark.coffee"},"repository":{"type":"git","url":"https://github.com/atom/fuzzaldrin.git"},"bugs":{"url":"https://github.com/atom/fuzzaldrin/issues"},"homepage":"http://atom.github.io/fuzzaldrin","keywords":["fuzzy","filter","stringscore"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","coffee-script":"~1.7"},"_id":"fuzzaldrin@2.1.0","dist":{"shasum":"90204c3e2fdaa6941bb28d16645d418063a90e9b","tarball":"http://registry.npmjs.org/fuzzaldrin/-/fuzzaldrin-2.1.0.tgz"},"_from":"fuzzaldrin@>=2.1.0 <3.0.0","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"directories":{},"_shasum":"90204c3e2fdaa6941bb28d16645d418063a90e9b","_resolved":"https://registry.npmjs.org/fuzzaldrin/-/fuzzaldrin-2.1.0.tgz"}
\ No newline at end of file
+{"name":"fuzzaldrin","version":"2.1.0","description":"Fuzzy filtering and string scoring","licenses":[{"type":"MIT","url":"http://github.com/atom/fuzzaldrin/raw/master/LICENSE.md"}],"main":"./lib/fuzzaldrin.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test","benchmark":"coffee benchmark/benchmark.coffee"},"repository":{"type":"git","url":"git+https://github.com/atom/fuzzaldrin.git"},"bugs":{"url":"https://github.com/atom/fuzzaldrin/issues"},"homepage":"http://atom.github.io/fuzzaldrin","keywords":["fuzzy","filter","stringscore"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","coffee-script":"~1.7"},"_id":"fuzzaldrin@2.1.0","dist":{"shasum":"90204c3e2fdaa6941bb28d16645d418063a90e9b","tarball":"http://registry.npmjs.org/fuzzaldrin/-/fuzzaldrin-2.1.0.tgz"},"_from":"fuzzaldrin@>=2.1.0 <3.0.0","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"directories":{},"_shasum":"90204c3e2fdaa6941bb28d16645d418063a90e9b","_resolved":"https://registry.npmjs.org/fuzzaldrin/-/fuzzaldrin-2.1.0.tgz","readme":"ERROR: No README data found!"}
\ No newline at end of file
index 13f7bb97c0e58daff949f82fb0757fd2d1d4116c..e0611df9dcd9a641759a5de718e219716c6dfe61 100644 (file)
@@ -1 +1 @@
-{"name":"grim","version":"0.12.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"c24f22a7e415d5d6b695967e341f7fb7aa27d83f","homepage":"https://github.com/atom/grim","_id":"grim@0.12.0","_shasum":"86d4ea11bf57b960688c624878bdc126fe4b7d1b","_from":"grim@>=0.12.0 <0.13.0","_npmVersion":"1.4.23","_npmUser":{"name":"benogle","email":"ogle.ben@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"86d4ea11bf57b960688c624878bdc126fe4b7d1b","tarball":"http://registry.npmjs.org/grim/-/grim-0.12.0.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/grim/-/grim-0.12.0.tgz","readme":"ERROR: No README data found!"}
\ No newline at end of file
+{"name":"grim","version":"0.12.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"git+https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"c24f22a7e415d5d6b695967e341f7fb7aa27d83f","homepage":"https://github.com/atom/grim","_id":"grim@0.12.0","_shasum":"86d4ea11bf57b960688c624878bdc126fe4b7d1b","_from":"grim@>=0.12.0 <0.13.0","_npmVersion":"1.4.23","_npmUser":{"name":"benogle","email":"ogle.ben@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"86d4ea11bf57b960688c624878bdc126fe4b7d1b","tarball":"http://registry.npmjs.org/grim/-/grim-0.12.0.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/grim/-/grim-0.12.0.tgz","readme":"ERROR: No README data found!"}
\ No newline at end of file
diff --git a/atom/.apm/grim/1.4.2/package.tgz b/atom/.apm/grim/1.4.2/package.tgz
new file mode 100644 (file)
index 0000000..588efbc
Binary files /dev/null and b/atom/.apm/grim/1.4.2/package.tgz differ
diff --git a/atom/.apm/grim/1.4.2/package/package.json b/atom/.apm/grim/1.4.2/package/package.json
new file mode 100644 (file)
index 0000000..b8890ed
--- /dev/null
@@ -0,0 +1 @@
+{"name":"grim","version":"1.4.2","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"git+https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"82c45ef794ce93e4455c29365441c62bf94b90a8","homepage":"https://github.com/atom/grim#readme","_id":"grim@1.4.2","_shasum":"b33abee33ec351bab8695818d511a049ca62ef04","_from":"grim@>=1.4.1 <2.0.0","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"b33abee33ec351bab8695818d511a049ca62ef04","tarball":"http://registry.npmjs.org/grim/-/grim-1.4.2.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/grim/-/grim-1.4.2.tgz"}
\ No newline at end of file
index 1c6ce7160d80c32445adc0961e22a238e1aa9040..53c11046457c587839890966f068b57d5ef1be64 100644 (file)
@@ -1 +1 @@
-{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.4","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.4/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.4/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"2.0.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","jsdom":"1.5.0","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"gitHead":"7751e69b615c6eca6f783a81e292a55725af6b85","_id":"jquery@2.1.4","_shasum":"228bde698a0c61431dc2630a6a154f15890d2317","_from":"jquery@>=2.1.3 <3.0.0","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"timmywil","email":"timmywillisn@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"dist":{"shasum":"228bde698a0c61431dc2630a6a154f15890d2317","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz"}
\ No newline at end of file
+{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.4","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.4/AUTHORS.txt"},"repository":{"type":"git","url":"git+https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.4/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"2.0.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","jsdom":"1.5.0","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"gitHead":"7751e69b615c6eca6f783a81e292a55725af6b85","_id":"jquery@2.1.4","_shasum":"228bde698a0c61431dc2630a6a154f15890d2317","_from":"jquery@>=2.1.3 <3.0.0","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"timmywil","email":"timmywillisn@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"dist":{"shasum":"228bde698a0c61431dc2630a6a154f15890d2317","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz","readme":"ERROR: No README data found!"}
\ No newline at end of file
index e48fdc821d682d4c7a77505e3f313db850bdd6cd..eedd9965de33e212c265c205cc2a7144c3c93b07 100644 (file)
@@ -1 +1 @@
-{"name":"mixto","version":"1.0.0","description":"A mixin superclass. Its subclasses have `.extend` and `.includeInto` methods to mix behavior into other objects and classes.","main":"lib/mixin","scripts":{"prepublish":"grunt clean coffee lint","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/mixto"},"keywords":["mixin","trait"],"bugs":{"url":"https://github.com/atom/mixto/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/mixto/raw/master/LICENSE.md"}],"devDependencies":{"coffee-script":"~1.6.3","jasmine-focused":"~0.19.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","rimraf":"~2.2.2"},"author":{"name":"Nathan Sobo"},"_id":"mixto@1.0.0","dist":{"shasum":"c320ef61b52f2898f522e17d8bbc6d506d8425b6","tarball":"http://registry.npmjs.org/mixto/-/mixto-1.0.0.tgz"},"_from":"mixto@>=1.0.0 <2.0.0","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{},"_shasum":"c320ef61b52f2898f522e17d8bbc6d506d8425b6","_resolved":"https://registry.npmjs.org/mixto/-/mixto-1.0.0.tgz","readme":"ERROR: No README data found!","homepage":"https://github.com/atom/mixto"}
\ No newline at end of file
+{"name":"mixto","version":"1.0.0","description":"A mixin superclass. Its subclasses have `.extend` and `.includeInto` methods to mix behavior into other objects and classes.","main":"lib/mixin","scripts":{"prepublish":"grunt clean coffee lint","test":"grunt test"},"repository":{"type":"git","url":"git+https://github.com/atom/mixto.git"},"keywords":["mixin","trait"],"bugs":{"url":"https://github.com/atom/mixto/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/mixto/raw/master/LICENSE.md"}],"devDependencies":{"coffee-script":"~1.6.3","jasmine-focused":"~0.19.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","rimraf":"~2.2.2"},"author":{"name":"Nathan Sobo"},"_id":"mixto@1.0.0","dist":{"shasum":"c320ef61b52f2898f522e17d8bbc6d506d8425b6","tarball":"http://registry.npmjs.org/mixto/-/mixto-1.0.0.tgz"},"_from":"mixto@>=1.0.0 <2.0.0","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{},"_shasum":"c320ef61b52f2898f522e17d8bbc6d506d8425b6","_resolved":"https://registry.npmjs.org/mixto/-/mixto-1.0.0.tgz","readme":"ERROR: No README data found!","homepage":"https://github.com/atom/mixto"}
\ No newline at end of file
index 57455e1f69e2a8244d2a98195d8a7313f3bdacc7..548986fa211405ba304772976dbae780a119083c 100644 (file)
@@ -1 +1 @@
-{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.3.5","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"http://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"~0.4.0"},"license":"MIT","_id":"mkdirp@0.3.5","dist":{"shasum":"de3e5f8961c88c787ee1368df849ac4413eca8d7","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"},"_from":"mkdirp@>=0.3.5 <0.4.0","_npmVersion":"1.2.2","_npmUser":{"name":"substack","email":"mail@substack.net"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{},"_shasum":"de3e5f8961c88c787ee1368df849ac4413eca8d7","_resolved":"https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"}
\ No newline at end of file
+{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.3.5","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git+ssh://git@github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"~0.4.0"},"license":"MIT","_id":"mkdirp@0.3.5","dist":{"shasum":"de3e5f8961c88c787ee1368df849ac4413eca8d7","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"},"_from":"mkdirp@>=0.3.5 <0.4.0","_npmVersion":"1.2.2","_npmUser":{"name":"substack","email":"mail@substack.net"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{},"_shasum":"de3e5f8961c88c787ee1368df849ac4413eca8d7","_resolved":"https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz","bugs":{"url":"https://github.com/substack/node-mkdirp/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/substack/node-mkdirp#readme"}
\ No newline at end of file
index 907a39cf30dc195ef4e10286164d5501b9733741..78a31012433739a4efce6ae4861646585c4acd45 100644 (file)
@@ -1 +1 @@
-{"name":"property-accessors","version":"1.1.3","description":"A mixin for declaring property accessors","main":"lib/property-accessors","scripts":{"test":"grunt test","publish":"grunt"},"repository":{"type":"git","url":"https://github.com/atom/property-accessors"},"keywords":["property","accessors","metaprogramming"],"author":{"name":"Nathan Sobo"},"licenses":[{"type":"MIT","url":"http://github.com/atom/telepath/raw/master/LICENSE.md"}],"bugs":{"url":"https://github.com/atom/property-accessors/issues"},"homepage":"http://atom.github.io/property-accessors/","dependencies":{"mixto":"1.x","es6-weak-map":"^0.1.2"},"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","rimraf":"~2.2.2"},"gitHead":"c90f096dfc8f589ecb8186cadfbfcf97dc5f5cc6","_id":"property-accessors@1.1.3","_shasum":"1dde84024631865909ef30703365680c5f928b15","_from":"property-accessors@>=1.1.0 <2.0.0","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"1dde84024631865909ef30703365680c5f928b15","tarball":"http://registry.npmjs.org/property-accessors/-/property-accessors-1.1.3.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/property-accessors/-/property-accessors-1.1.3.tgz","readme":"ERROR: No README data found!"}
\ No newline at end of file
+{"name":"property-accessors","version":"1.1.3","description":"A mixin for declaring property accessors","main":"lib/property-accessors","scripts":{"test":"grunt test","publish":"grunt"},"repository":{"type":"git","url":"git+https://github.com/atom/property-accessors.git"},"keywords":["property","accessors","metaprogramming"],"author":{"name":"Nathan Sobo"},"licenses":[{"type":"MIT","url":"http://github.com/atom/telepath/raw/master/LICENSE.md"}],"bugs":{"url":"https://github.com/atom/property-accessors/issues"},"homepage":"http://atom.github.io/property-accessors/","dependencies":{"mixto":"1.x","es6-weak-map":"^0.1.2"},"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","rimraf":"~2.2.2"},"gitHead":"c90f096dfc8f589ecb8186cadfbfcf97dc5f5cc6","_id":"property-accessors@1.1.3","_shasum":"1dde84024631865909ef30703365680c5f928b15","_from":"property-accessors@>=1.1.0 <2.0.0","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"1dde84024631865909ef30703365680c5f928b15","tarball":"http://registry.npmjs.org/property-accessors/-/property-accessors-1.1.3.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/property-accessors/-/property-accessors-1.1.3.tgz","readme":"ERROR: No README data found!"}
\ No newline at end of file
index 94e37107de4314cb305f00a5a1d29c4ee68c8161..59c036731ce6de360e9d4d95a5de02940dca6f5a 100644 (file)
@@ -1 +1 @@
-{"_id":"async","_rev":"808-cd6d219de76ed2d420d3df80eaca91cf","name":"async","description":"Higher-order functions and common patterns for asynchronous code","dist-tags":{"latest":"1.3.0"},"versions":{"0.1.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.0","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.0","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.0.tgz","shasum":"ab8ece0c40627e4e8f0e09c8fcf7c19ed0c4241c"},"directories":{}},"0.1.1":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.1","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.1","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.1.tgz","shasum":"fb965e70dbea44c8a4b8a948472dee7d27279d5e"},"directories":{}},"0.1.2":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.2","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.2","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.2.tgz","shasum":"be761882a64d3dc81a669f9ee3d5c28497382691"},"directories":{}},"0.1.3":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.3","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.3","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.3.tgz","shasum":"629ca2357112d90cafc33872366b14f2695a1fbc"},"directories":{}},"0.1.4":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.4","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.4","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.4.tgz","shasum":"29de4b98712ab8858411d8d8e3361a986c3b2c18"},"directories":{}},"0.1.5":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.5","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.5","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.5.tgz","shasum":"9d83e3d4adb9c962fc4a30e7dd04bf1206c28ea5"},"directories":{}},"0.1.6":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.6","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.6","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.6.tgz","shasum":"2dfb4fa1915f86056060c2e2f35a7fb8549907cc"},"directories":{}},"0.1.7":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.7","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.7","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.4-1","_nodeVersion":"v0.2.5","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.7.tgz","shasum":"e9268d0d8cd8dcfe0db0895b27dcc4bcc5c739a5"},"directories":{}},"0.1.8":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.8","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.8","engines":{"node":"*"},"_nodeSupported":true,"dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.8.tgz","shasum":"52f2df6c0aa6a7f8333e1fbac0fbd93670cf6758"},"directories":{}},"0.1.9":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.9","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"dependencies":{},"devDependencies":{},"_id":"async@0.1.9","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.1rc7","_nodeVersion":"v0.4.7","_defaultsLoaded":true,"dist":{"shasum":"f984d0739b5382c949cc3bea702d21d0dbd52040","tarball":"http://registry.npmjs.org/async/-/async-0.1.9.tgz"},"directories":{}},"0.1.10":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.10","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_npmJsonOpts":{"file":"/home/caolan/.npm/async/0.1.10/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"async@0.1.10","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.27","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"12b32bf098fa7fc51ae3ac51441b8ba15f437cf1","tarball":"http://registry.npmjs.org/async/-/async-0.1.10.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.11":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.11","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_npmJsonOpts":{"file":"/home/caolan/.npm/async/0.1.11/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"async@0.1.11","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.27","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"a397a69c6febae232d20a76a5b10d8742e2b8215","tarball":"http://registry.npmjs.org/async/-/async-0.1.11.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.12":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.12","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_npmJsonOpts":{"file":"/home/caolan/.npm/async/0.1.12/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"async@0.1.12","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.27","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"ab36be6611dc63d91657128e1d65102b959d4afe","tarball":"http://registry.npmjs.org/async/-/async-0.1.12.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.13":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.13","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.13","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.101","_nodeVersion":"v0.4.9","_defaultsLoaded":true,"dist":{"shasum":"f1e53ad69dab282d8e75cbec5e2c5524b6195eab","tarball":"http://registry.npmjs.org/async/-/async-0.1.13.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.14":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.14","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.14","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.101","_nodeVersion":"v0.4.9","_defaultsLoaded":true,"dist":{"shasum":"0fcfaf089229fc657798203d1a4544102f7d26dc","tarball":"http://registry.npmjs.org/async/-/async-0.1.14.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.15":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.15","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.15","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.101","_nodeVersion":"v0.4.9","_defaultsLoaded":true,"dist":{"shasum":"2180eaca2cf2a6ca5280d41c0585bec9b3e49bd3","tarball":"http://registry.npmjs.org/async/-/async-0.1.15.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.16":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.16","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.16","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.0-3","_nodeVersion":"v0.6.10","_defaultsLoaded":true,"dist":{"shasum":"b3a61fdc1a9193d4f64755c7600126e254223186","tarball":"http://registry.npmjs.org/async/-/async-0.1.16.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.17":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.17","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"dependencies":{"uglify-js":"1.2.x"},"devDependencies":{"nodeunit":">0.0.0","nodelint":">0.0.0"},"scripts":{"preinstall":"make clean","install":"make build","test":"make test"},"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.17","optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"03524a379e974dc9ee5c811c6ee3815d7bc54f6e","tarball":"http://registry.npmjs.org/async/-/async-0.1.17.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.18":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.18","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.18","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"c59c923920b76d5bf23248c04433920c4d45086a","tarball":"http://registry.npmjs.org/async/-/async-0.1.18.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.19":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.19","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.19","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"4fd6125a70f841fb10b14aeec6e23cf1479c71a7","tarball":"http://registry.npmjs.org/async/-/async-0.1.19.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.20":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.20","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.20","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"ba0e47b08ae972e04b5215de28539b313482ede5","tarball":"http://registry.npmjs.org/async/-/async-0.1.20.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.21":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.21","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.21","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"b5b12e985f09ab72c202fa00f623cd9d997e9464","tarball":"http://registry.npmjs.org/async/-/async-0.1.21.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.22":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.22","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.22","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061","tarball":"http://registry.npmjs.org/async/-/async-0.1.22.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.0","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"_id":"async@0.2.0","dist":{"shasum":"db1c645337bab79d0ca93d95f5c72d9605be0fce","tarball":"http://registry.npmjs.org/async/-/async-0.2.0.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.1":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.1","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"_id":"async@0.2.1","dist":{"shasum":"4e37d08391132f79657a99ca73aa4eb471a6f771","tarball":"http://registry.npmjs.org/async/-/async-0.2.1.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.2":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.2","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"_id":"async@0.2.2","dist":{"shasum":"8414ee47da7548126b4d3d923850d54e68a72b28","tarball":"http://registry.npmjs.org/async/-/async-0.2.2.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.3":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.3","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"_id":"async@0.2.3","dist":{"shasum":"79bf601d723a2e8c3e91cb6bb08f152dca309fb3","tarball":"http://registry.npmjs.org/async/-/async-0.2.3.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.4":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.4","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"_id":"async@0.2.4","dist":{"shasum":"0550e510cf43b83e2fcf1cb96399f03f1efd50eb","tarball":"http://registry.npmjs.org/async/-/async-0.2.4.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.5":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.5","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"_id":"async@0.2.5","dist":{"shasum":"45f05da480749ba4c1dcd8cd3a3747ae7b36fe52","tarball":"http://registry.npmjs.org/async/-/async-0.2.5.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.6":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.6","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"_id":"async@0.2.6","dist":{"shasum":"ad3f373d9249ae324881565582bc90e152abbd68","tarball":"http://registry.npmjs.org/async/-/async-0.2.6.tgz"},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.7":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.7","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"_id":"async@0.2.7","dist":{"shasum":"44c5ee151aece6c4bf5364cfc7c28fe4e58f18df","tarball":"http://registry.npmjs.org/async/-/async-0.2.7.tgz"},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.8":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.8","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"_id":"async@0.2.8","dist":{"shasum":"ba1b3ffd1e6cdb1e999aca76ef6ecee8e7f55f53","tarball":"http://registry.npmjs.org/async/-/async-0.2.8.tgz"},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.9":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.9","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"_id":"async@0.2.9","dist":{"shasum":"df63060fbf3d33286a76aaf6d55a2986d9ff8619","tarball":"http://registry.npmjs.org/async/-/async-0.2.9.tgz"},"_from":".","_npmVersion":"1.2.23","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.10":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.10","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"_id":"async@0.2.10","dist":{"shasum":"b6bbe0b0674b9d719708ca38de8c237cb526c3d1","tarball":"http://registry.npmjs.org/async/-/async-0.2.10.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.3.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.3.0","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.3.0","dist":{"shasum":"6d2c543c25f514c602bb22916ac222a519290d5d","tarball":"http://registry.npmjs.org/async/-/async-0.3.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.4.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.4.0","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.4.0","dist":{"shasum":"208bba02850129dacc2bc3959e4126570ae80b74","tarball":"http://registry.npmjs.org/async/-/async-0.4.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.4.1":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.4.1","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.4.1","dist":{"shasum":"1985abade017df906bfaa8d77d424b25366b3a5b","tarball":"http://registry.npmjs.org/async/-/async-0.4.1.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.5.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.5.0","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.5.0","dist":{"shasum":"524bc1cf3ed2b6adc7f4a8c4987dd9c4809c764f","tarball":"http://registry.npmjs.org/async/-/async-0.5.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.6.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.6.0","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.6.0","dist":{"shasum":"025a31c8b1fb11e7481fa18dbdbc2bf2e434933a","tarball":"http://registry.npmjs.org/async/-/async-0.6.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.6.1":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.6.1","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.6.1","dist":{"shasum":"594fe360968fcdd2d7e0a6d95a874e4e92c7a26d","tarball":"http://registry.npmjs.org/async/-/async-0.6.1.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.6.2":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.6.2","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.6.2","dist":{"shasum":"41fd038a3812c0a8bc1842ecf08ba63eb0392bef","tarball":"http://registry.npmjs.org/async/-/async-0.6.2.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.7.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.7.0","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.7.0","dist":{"shasum":"4429e0e62f5de0a54f37458c49f0b897eb52ada5","tarball":"http://registry.npmjs.org/async/-/async-0.7.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.8.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.8.0","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.8.0","dist":{"shasum":"ee65ec77298c2ff1456bc4418a052d0f06435112","tarball":"http://registry.npmjs.org/async/-/async-0.8.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.9.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.9.0","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.9.0","dist":{"shasum":"ac3613b1da9bed1b47510bb4651b8931e47146c7","tarball":"http://registry.npmjs.org/async/-/async-0.9.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.9.2":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"0.9.2","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0","lodash":">=2.4.1"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"test":"nodeunit test/test-async.js"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"de3a16091d5125384eff4a54deb3998b13c3814c","homepage":"https://github.com/caolan/async#readme","_id":"async@0.9.2","_shasum":"aea74d5e61c1f899613bf64bda66d4c78f2fd17d","_from":".","_npmVersion":"2.9.0","_nodeVersion":"2.0.1","_npmUser":{"name":"beaugunderson","email":"beau@beaugunderson.com"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"}],"dist":{"shasum":"aea74d5e61c1f899613bf64bda66d4c78f2fd17d","tarball":"http://registry.npmjs.org/async/-/async-0.9.2.tgz"},"directories":{}},"1.0.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"1.0.0","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"benchmark":"~1.0.0","jshint":"~2.7.0","lodash":">=2.4.1","mkdirp":"~0.5.1","nodeunit":">0.0.0","uglify-js":"1.2.x"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"test":"npm run-script lint && nodeunit test/test-async.js","lint":"jshint lib/*.js test/*.js perf/*.js"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"cfa81645c9cb4011b23d1d1a445ad855762568e0","homepage":"https://github.com/caolan/async#readme","_id":"async@1.0.0","_shasum":"f8fc04ca3a13784ade9e1641af98578cfbd647a9","_from":".","_npmVersion":"2.9.1","_nodeVersion":"0.12.3","_npmUser":{"name":"aearly","email":"alexander.early@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"}],"dist":{"shasum":"f8fc04ca3a13784ade9e1641af98578cfbd647a9","tarball":"http://registry.npmjs.org/async/-/async-1.0.0.tgz"},"directories":{}},"1.1.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"1.1.0","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"benchmark":"github:bestiejs/benchmark.js","coveralls":"^2.11.2","jshint":"~2.7.0","lodash":">=2.4.1","mkdirp":"~0.5.1","nodeunit":">0.0.0","nyc":"^2.1.0","uglify-js":"1.2.x","yargs":"~3.9.1"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"test":"npm run-script lint && nodeunit test/test-async.js","lint":"jshint lib/*.js test/*.js perf/*.js","coverage":"nyc npm test && nyc report","coveralls":"nyc npm test && nyc report --reporter=text-lcov | coveralls"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"88906aa60d407e12185139e86204aa63aa6faf28","homepage":"https://github.com/caolan/async#readme","_id":"async@1.1.0","_shasum":"2b33ea3e87fc0c5ed624f9e31a9c902c022da09b","_from":".","_npmVersion":"2.9.1","_nodeVersion":"0.12.3","_npmUser":{"name":"aearly","email":"alexander.early@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"}],"dist":{"shasum":"2b33ea3e87fc0c5ed624f9e31a9c902c022da09b","tarball":"http://registry.npmjs.org/async/-/async-1.1.0.tgz"},"directories":{}},"1.2.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"1.2.0","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"benchmark":"github:bestiejs/benchmark.js","coveralls":"^2.11.2","jshint":"~2.7.0","lodash":">=2.4.1","mkdirp":"~0.5.1","nodeunit":">0.0.0","nyc":"^2.1.0","uglify-js":"1.2.x","yargs":"~3.9.1"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"test":"npm run-script lint && nodeunit test/test-async.js","lint":"jshint lib/*.js test/*.js perf/*.js","coverage":"nyc npm test && nyc report","coveralls":"nyc npm test && nyc report --reporter=text-lcov | coveralls"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"ff3bd90be6b862a11d0e4a11eb72a6985c26c5af","homepage":"https://github.com/caolan/async#readme","_id":"async@1.2.0","_shasum":"9029580f93d05a7cab24f502c84707ac3ef57b10","_from":".","_npmVersion":"2.9.0","_nodeVersion":"2.0.2","_npmUser":{"name":"aearly","email":"alexander.early@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"}],"dist":{"shasum":"9029580f93d05a7cab24f502c84707ac3ef57b10","tarball":"http://registry.npmjs.org/async/-/async-1.2.0.tgz"},"directories":{}},"1.1.1":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"1.1.1","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"benchmark":"github:bestiejs/benchmark.js","coveralls":"^2.11.2","jshint":"~2.7.0","lodash":">=2.4.1","mkdirp":"~0.5.1","nodeunit":">0.0.0","nyc":"^2.1.0","uglify-js":"1.2.x","yargs":"~3.9.1"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"test":"npm run-script lint && nodeunit test/test-async.js","lint":"jshint lib/*.js test/*.js perf/*.js","coverage":"nyc npm test && nyc report","coveralls":"nyc npm test && nyc report --reporter=text-lcov | coveralls"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"46cbdfd5324be57f15481bee32ad0fda507171b0","homepage":"https://github.com/caolan/async#readme","_id":"async@1.1.1","_shasum":"753cb13df043ff08d810e4418d312d646ee1bbea","_from":".","_npmVersion":"2.9.0","_nodeVersion":"2.0.2","_npmUser":{"name":"aearly","email":"alexander.early@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"}],"dist":{"shasum":"753cb13df043ff08d810e4418d312d646ee1bbea","tarball":"http://registry.npmjs.org/async/-/async-1.1.1.tgz"},"directories":{}},"1.2.1":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"1.2.1","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"benchmark":"github:bestiejs/benchmark.js","coveralls":"^2.11.2","jshint":"~2.7.0","lodash":">=2.4.1","mkdirp":"~0.5.1","nodeunit":">0.0.0","nyc":"^2.1.0","uglify-js":"1.2.x","yargs":"~3.9.1"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"test":"npm run-script lint && nodeunit test/test-async.js","lint":"jshint lib/*.js test/*.js perf/*.js","coverage":"nyc npm test && nyc report","coveralls":"nyc npm test && nyc report --reporter=text-lcov | coveralls"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"b66e85d1cca8c8056313253f22d18f571e7001d2","homepage":"https://github.com/caolan/async#readme","_id":"async@1.2.1","_shasum":"a4816a17cd5ff516dfa2c7698a453369b9790de0","_from":".","_npmVersion":"2.9.0","_nodeVersion":"2.0.2","_npmUser":{"name":"aearly","email":"alexander.early@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"}],"dist":{"shasum":"a4816a17cd5ff516dfa2c7698a453369b9790de0","tarball":"http://registry.npmjs.org/async/-/async-1.2.1.tgz"},"directories":{}},"1.3.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"1.3.0","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"benchmark":"github:bestiejs/benchmark.js","coveralls":"^2.11.2","jshint":"~2.8.0","lodash":"^3.9.0","mkdirp":"~0.5.1","nodeunit":">0.0.0","nyc":"^2.1.0","uglify-js":"~2.4.0","xyz":"^0.5.0","yargs":"~3.9.1"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"test":"npm run-script lint && nodeunit test/test-async.js","lint":"jshint lib/*.js test/*.js perf/*.js","coverage":"nyc npm test && nyc report","coveralls":"nyc npm test && nyc report --reporter=text-lcov | coveralls"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"71fa2638973dafd8761fa5457c472a312cc820fe","homepage":"https://github.com/caolan/async#readme","_id":"async@1.3.0","_shasum":"a6f1631e8a595a663496d0a5586bd12007d4871d","_from":".","_npmVersion":"2.9.1","_nodeVersion":"0.12.3","_npmUser":{"name":"aearly","email":"alexander.early@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"}],"dist":{"shasum":"a6f1631e8a595a663496d0a5586bd12007d4871d","tarball":"http://registry.npmjs.org/async/-/async-1.3.0.tgz"},"directories":{}}},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"}],"author":{"name":"Caolan McMahon"},"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"time":{"modified":"2015-06-29T16:14:01.899Z","created":"2010-12-19T16:41:51.765Z","0.1.0":"2010-12-19T16:41:51.765Z","0.1.1":"2010-12-19T16:41:51.765Z","0.1.2":"2010-12-19T16:41:51.765Z","0.1.3":"2010-12-19T16:41:51.765Z","0.1.4":"2010-12-19T16:41:51.765Z","0.1.5":"2010-12-19T16:41:51.765Z","0.1.6":"2010-12-19T16:41:51.765Z","0.1.7":"2010-12-19T16:41:51.765Z","0.1.8":"2011-01-18T09:56:53.975Z","0.1.9":"2011-04-27T20:48:08.634Z","0.1.10":"2011-09-19T04:40:01.573Z","0.1.11":"2011-10-14T17:07:28.752Z","0.1.12":"2011-10-14T17:19:19.452Z","0.1.13":"2011-10-29T22:33:52.448Z","0.1.14":"2011-10-29T22:40:14.486Z","0.1.15":"2011-11-01T23:05:01.415Z","0.1.16":"2012-02-13T04:56:23.926Z","0.1.17":"2012-02-27T02:40:58.997Z","0.1.18":"2012-02-27T16:51:02.109Z","0.1.19":"2012-05-24T06:51:06.109Z","0.1.20":"2012-05-24T06:53:39.997Z","0.1.21":"2012-05-24T07:16:16.753Z","0.1.22":"2012-05-30T18:26:44.821Z","0.1.23":"2012-10-04T13:52:08.947Z","0.2.0":"2013-02-04T11:38:08.943Z","0.2.1":"2013-02-04T11:52:34.110Z","0.2.2":"2013-02-05T15:55:23.202Z","0.2.3":"2013-02-06T12:48:37.415Z","0.2.4":"2013-02-07T17:26:22.236Z","0.2.5":"2013-02-10T22:42:00.162Z","0.2.6":"2013-03-03T11:29:52.674Z","0.2.7":"2013-04-09T20:50:04.712Z","0.2.8":"2013-05-01T10:04:07.430Z","0.2.9":"2013-05-28T07:50:48.795Z","0.2.10":"2014-01-23T16:23:57.271Z","0.3.0":"2014-03-28T17:16:05.640Z","0.4.0":"2014-03-28T17:25:12.580Z","0.4.1":"2014-03-30T11:42:54.298Z","0.5.0":"2014-03-30T11:46:31.381Z","0.6.0":"2014-03-30T12:04:32.275Z","0.6.1":"2014-03-30T20:35:32.550Z","0.6.2":"2014-03-31T09:56:20.294Z","0.7.0":"2014-04-07T09:07:34.303Z","0.8.0":"2014-04-29T15:26:34.028Z","0.9.0":"2014-05-16T10:20:22.247Z","0.9.2":"2015-05-19T08:45:57.198Z","1.0.0":"2015-05-20T23:40:05.710Z","1.1.0":"2015-06-01T07:59:05.989Z","1.2.0":"2015-06-02T20:56:04.526Z","1.1.1":"2015-06-08T01:26:56.285Z","1.2.1":"2015-06-08T01:43:33.907Z","1.3.0":"2015-06-29T16:14:01.899Z"},"users":{"thejh":true,"avianflu":true,"dylang":true,"ragingwind":true,"mvolkmann":true,"mikl":true,"linus":true,"pvorb":true,"dodo":true,"danielr":true,"suor":true,"dolphin278":true,"kurijov":true,"langpavel":true,"alexindigo":true,"fgribreau":true,"hughsk":true,"pid":true,"tylerstalder":true,"gillesruppert":true,"coiscir":true,"xenomuta":true,"jgoodall":true,"jswartwood":true,"drudge":true,"cpsubrian":true,"joeferner":true,"bencevans":true,"Scryptonite":true,"damonoehlman":true,"glukki":true,"tivac":true,"shama":true,"gimenete":true,"bryanburgers":true,"hij1nx":true,"sandeepmistry":true,"minddiaper":true,"fiws":true,"ljharb":true,"popeindustries":true,"dbrockman":true,"eknkc":true,"booyaa":true,"afc163":true,"maxmaximov":true,"meryn":true,"hfcorriez":true,"hyqhyq_3":true,"zonetti":true,"cmilhench":true,"cparker15":true,"jfromaniello":true,"ExxKA":true,"devoidfury":true,"cedrickchee":true,"niftymonkey":true,"paulj":true,"leesei":true,"jamesmgreene":true,"igorissen":true,"zaphod1984":true,"moonpyk":true,"joliva":true,"netroy":true,"chrisweb":true,"cuprobot":true,"tmaximini":true,"lupomontero":true,"john.pinch":true,"everywhere.js":true,"frankblizzard":true,"alanshaw":true,"forivall":true,"kubakubula":true,"doliveira":true,"dstokes":true,"pana":true,"irae":true,"mhaidarh":true,"feross":true,"tetsu3a":true,"qubyte":true,"darosh":true,"pragmadash":true,"denisix":true,"samuelrn":true,"tigefa":true,"tcrowe":true,"tpwk":true,"eins78":true,"sierrasoftworks":true,"yoavf":true,"irakli":true,"hypergeometric":true,"gammasoft":true,"youxiachai":true,"kahboom":true,"elisee":true,"soroush":true,"thomas-so":true,"shenaor":true,"dannynemer":true,"paulomcnally":true,"timur.shemsedinov":true,"slianfeng":true,"ettalea":true,"mananvaghasiya":true,"daniel7912":true,"themiddleman":true,"jacques":true,"kerimdzhanov":true,"jorgemsrs":true,"ivandimanov":true,"vegera":true,"aselzer":true,"kentcdodds":true,"putaoshu":true,"cilindrox":true,"bezoerb":true,"leodutra":true,"mpcref":true,"green_goo":true,"crimeminister":true,"rrobayna":true,"tengisb":true,"johannestegner":true,"iisii":true,"nate-wilkins":true,"hankeypancake":true,"sironfoot":true,"seldo":true,"skipzero":true,"owenlancaster":true,"esundahl":true,"zeusdeux":true,"ajduke":true,"darryl.west":true,"noder":true,"projectweekend":true,"alejonext":true,"evkline":true,"horaci":true,"h2non":true,"tarcio":true,"lucasbrigida":true,"roboterhund87":true,"nbu":true,"biggora":true,"junajan":true,"huoshaolin":true,"netzzwerg":true,"fmm":true,"redbe4rd":true,"codeshrew":true,"stonestyle":true,"caligone":true,"nswbmw":true,"landau":true,"progmer":true,"lucasjans":true,"gabeio":true,"beyoung":true,"davidhalldor":true,"cwonrails":true,"cocopas":true,"jayharris":true,"rckbt":true,"hut":true,"lobodpav":true,"alinex":true,"morishitter":true,"joost":true,"mmierswa":true,"skilbjo":true,"topcloud":true,"imzack":true,"runningtalus":true,"toogle":true,"gyoridavid":true,"humantriangle":true,"pospi":true,"sampsa":true,"z3a":true,"andre_de_souza":true,"wayneashleyberry":true,"vitaliks":true,"mikend":true,"gmturbo":true,"juriwiens":true,"ksnieck":true,"brentonhouse":true,"axelav":true,"jbdoumenjou":true,"shen-weizhong":true,"tmn":true,"gaborsar":true,"nromano":true,"chaowi":true,"jaredvogt":true,"timsmiths":true,"zckrs":true,"agent_9191":true,"djbrandl":true,"edalorzo":true,"jakub.knejzlik":true,"robertwarrengilmore":true,"trylobot":true,"oroce":true,"nak2k":true,"piron_t":true,"bmpvieira":true,"joshmu":true,"davidrlee":true,"adityabakle":true,"wilbeibi":true,"ramanshalupau":true,"dizlexik":true,"cbarrick":true,"janez89":true,"frk1705":true,"travelingtechguy":true,"thitinun":true,"shatting":true,"pilsy":true,"quadroid":true,"fanchangyong":true,"tchey":true,"arrc":true,"h02e56":true,"strangemother":true,"tmypawa":true,"ioncreature":true,"japh":true,"tonijz":true,"syzer":true,"nodecode":true,"dercoder":true,"leighakin":true,"matteospampani":true,"redmed":true,"s-konrad":true,"boustanihani":true,"ricardofbarros":true,"ryanthejuggler":true,"mswanson1524":true,"alnafie":true,"truongpv":true,"tjwebb":true,"daviddias":true,"nbarr":true,"ajohnstone":true,"atd":true,"tommyjs7":true,"omardelarosa":true,"rifaqat":true,"tsangint":true,"cortys":true,"mbildner":true,"yourhoneysky":true,"fill":true,"dennisgnl":true,"fampinheiro":true,"anilcs0405":true,"mathiasm":true,"benpptung":true,"thebearingedge":true,"leon.domingo":true,"hemphillcc":true,"jits":true,"tcauduro":true,"gorbiz":true,"guumaster":true,"brandonb927":true,"nornalbion":true,"loselovegirl":true,"lucag":true,"dilterporto":true,"wilk":true,"karmadude":true,"henryfour":true,"iaincollins":true,"louxiaojian":true,"jotadeveloper":true,"cyberien":true,"atheken":true,"lebowitz":true,"orion-":true,"thebespokepixel":true,"hecto932":true,"denmerc":true,"rpgreen":true,"colwob":true,"shieldax":true,"8bitalex":true,"memoramirez":true,"liushuping":true,"ciroque":true,"jugyo":true,"mjurincic":true,"flaviodelbianco":true,"thealphanerd":true,"samanthagmccormick":true,"trycatch9264":true,"tomi77":true,"lezuse":true,"oncletom":true,"kewin":true,"l0n9h02n":true,"sasquatch":true,"manny":true,"wxnet":true,"ruffle1986":true,"danestuckel":true,"krisbarrett":true,"tur-nr":true,"danielhuisman":true,"byossarian":true,"joshwyatt":true,"lellansin":true,"evandrix":true,"gautam.mehra762":true,"dominik.palo":true,"dgarlitt":true,"woverton":true,"legacy":true,"paulpdaniels":true,"congcong":true,"trusktr":true,"jcreigno":true,"jsolis":true,"avinashkoyyana":true,"nfd":true,"yvesm":true,"yoavniran":true,"silentcloud":true,"ivangaravito":true,"otrlennon":true,"terkelg":true,"jgubo":true,"jshkurti":true,"ryanj":true,"pensierinmusica":true,"mihaiv":true,"swak":true,"cath":true,"gdbtek":true,"adomvris":true,"hash-bang":true,"dearyhud":true,"themanspeaker":true,"shahzaib":true,"yerke":true,"gigerlin":true,"mastayoda":true,"cgfeel":true,"ashkyd":true,"schroeterm":true,"kasperstuck":true,"thorsson":true,"raksa":true,"patrick":true,"genediazjr":true,"hollobit":true,"rgraves90":true,"yeahoffline":true,"kenjisan4u":true,"tgohn":true,"tedyhy":true,"frakti":true,"minichiello":true,"johnnyeven":true,"tomas-sereikis":true,"fyockm":true,"dormi330":true,"eterna2":true,"cdubois":true,"mnemr":true,"yvanscher":true,"thomask33":true,"chehow":true,"chzhewl":true,"jezzalaycock":true,"pumych":true,"marsup":true,"javimaravillas":true,"sushant711":true,"robftw":true,"elliotchong":true,"f124275809":true,"wangnan0610":true,"lazycoder":true,"chrisayn":true,"uniquerockrz":true,"r3nya":true,"cellule":true,"leonning":true,"meme":true,"adamk":true,"salvatorelab":true,"kerry95":true,"stuligan":true,"dlpowless":true,"goblindegook":true,"davidcz":true,"nachbar90":true,"haeck":true,"pnevares":true,"markthethomas":true,"kikar":true,"blakedietz":true,"drdanryan":true,"saidgeek":true,"melvingruesbeck":true,"atonb117":true,"theodor.lindekaer":true,"vchouhan":true,"kulakowka":true,"schnarald":true,"samhwang1990":true,"lyaotian":true,"joeyblue":true,"kbeaulieu":true,"igorkirey":true,"sahilsk":true,"manxisuo":true,"mnlfischer":true,"dmitrymatveev":true,"alejcerro":true,"goodseller":true,"samhou1988":true,"tophsic":true,"docksteaderluke":true,"harutlc":true,"vboctor":true,"alexey_detr":true,"marianboda":true,"jerome.d.russ":true,"warapitiya":true,"snehlsen":true,"techmatt101":true,"nicolasmccurdy":true,"koulmomo":true,"d4nyll":true,"huarse":true,"savostin":true,"nadimix":true,"leodido":true,"tomjamescn":true,"anhulife":true,"jmm23":true,"jklassen":true,"airswoop1":true,"derickchou0129":true,"subchen":true,"simplyianm":true,"pengzhisun":true,"nickeljew":true,"dongxu":true,"risyasin":true,"brandonpapworth":true,"denistrofimov":true,"sc7639":true,"rbartoli":true,"shaneli":true,"rodrigo-medeiros":true,"swarnendu-dutta":true,"jmshahen":true,"junjiansyu":true,"itonyyo":true,"trotyl":true,"icirellik":true,"paeblits":true,"logeshpaul":true,"elgubenis":true,"alexkval":true,"aesinv":true,"arnold-almeida":true,"bruce313":true,"rcastro":true,"godion":true,"skozz":true,"zemgalis":true,"justintormey":true,"tonydieu":true,"gejiawen":true,"yvesroos":true,"yjsosa":true,"fabioelizandro":true,"tfentonz":true,"dac2205":true,"octoo":true,"tmcguire":true,"sbrajesh":true,"staraple":true,"micahjonas":true,"j3kz":true,"modao":true,"iamwiz":true,"joemdavis":true,"jasoncmcg":true,"richarddavenport":true,"xavierharrell":true,"chriscalo":true,"arunvsuresh":true,"dolymood":true,"allthingssmitty":true,"brandondoran":true,"jonatasnona":true,"tudou":true,"nwinant":true,"khaledkaram":true,"garek":true,"etsit":true,"l3au":true,"ezcabrera":true,"johnny.young":true,"subso":true,"rogier.spieker":true,"rgbz":true,"plitat":true,"favasconcelos":true,"buzuli":true,"nukisman":true,"battlemidget":true,"brandouellette":true,"till":true,"craneleeon":true,"rbecheras":true,"nikitka_m":true,"thepanuto":true,"justinshea":true,"luuhoangnam":true,"jasonlotito":true,"aclark64":true,"scottkay":true,"pigram":true,"kanongil":true,"vladan":true,"universemaster":true,"nanhualyq":true,"unboundev":true,"josuehenry14":true,"mjwilliams":true,"cestrensem":true,"zhen":true,"ddffx":true,"prabhash1785":true,"gaboesquivel":true,"bpatel":true,"davidchubbs":true,"adamkdean":true,"parkerproject":true,"confkit":true,"amoiseev":true,"buzzalderaan":true,"damianof":true,"ocd_lionel":true,"tylersmith.34":true,"princetoad":true,"tnagengast":true,"devmoreno":true,"karlbateman":true,"fvcproductions":true,"joshua.marquez":true,"freshlogic":true,"andrewpmckenzie":true,"jueb":true,"perrywu":true},"readme":"# Async.js\n\n[![Build Status via Travis CI](https://travis-ci.org/caolan/async.svg?branch=master)](https://travis-ci.org/caolan/async)\n[![NPM version](http://img.shields.io/npm/v/async.svg)](https://www.npmjs.org/package/async)\n[![Coverage Status](https://coveralls.io/repos/caolan/async/badge.svg?branch=master)](https://coveralls.io/r/caolan/async?branch=master)\n[![Join the chat at https://gitter.im/caolan/async](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/caolan/async?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n\nAsync is a utility module which provides straight-forward, powerful functions\nfor working with asynchronous JavaScript. Although originally designed for\nuse with [Node.js](http://nodejs.org) and installable via `npm install async`,\nit can also be used directly in the browser.\n\nAsync is also installable via:\n\n- [bower](http://bower.io/): `bower install async`\n- [component](https://github.com/component/component): `component install\n  caolan/async`\n- [jam](http://jamjs.org/): `jam install async`\n- [spm](http://spmjs.io/): `spm install async`\n\nAsync provides around 20 functions that include the usual 'functional'\nsuspects (`map`, `reduce`, `filter`, `each`…) as well as some common patterns\nfor asynchronous control flow (`parallel`, `series`, `waterfall`…). All these\nfunctions assume you follow the Node.js convention of providing a single\ncallback as the last argument of your `async` function.\n\n\n## Quick Examples\n\n```javascript\nasync.map(['file1','file2','file3'], fs.stat, function(err, results){\n    // results is now an array of stats for each file\n});\n\nasync.filter(['file1','file2','file3'], fs.exists, function(results){\n    // results now equals an array of the existing files\n});\n\nasync.parallel([\n    function(){ ... },\n    function(){ ... }\n], callback);\n\nasync.series([\n    function(){ ... },\n    function(){ ... }\n]);\n```\n\nThere are many more functions available so take a look at the docs below for a\nfull list. This module aims to be comprehensive, so if you feel anything is\nmissing please create a GitHub issue for it.\n\n## Common Pitfalls\n\n<a name=\"stack-overflow\">\n### Synchronous iteration functions\n\nIf you get an error like `RangeError: Maximum call stack size exceeded.` or other stack overflow issues when using async, you are likely using a synchronous iterator.  By *synchronous* we mean a function that calls its callback on the same tick in the javascript event loop, without doing any I/O or using any timers.  Calling many callbacks iteratively will quickly overflow the stack. If you run into this issue, just defer your callback with `async.nextTick` to start a new call stack on the next tick of the event loop.\n\nThis can also arise by accident if you callback early in certain cases:\n\n```js\nasync.eachSeries(hugeArray, function iterator(item, callback) {\n  if (inCache(item)) {\n    callback(null, cache[item]); // if many items are cached, you'll overflow\n  } else {\n    doSomeIO(item, callback);\n  }\n}, function done() {\n  //...\n});\n```\n\nJust change it to:\n\n```js\nasync.eachSeries(hugeArray, function iterator(item, callback) {\n  if (inCache(item)) {\n    async.setImmediate(function () {\n      callback(null, cache[item]);\n    });\n  } else {\n    doSomeIO(item, callback);\n  //...\n```\n\nAsync guards against synchronous functions in some, but not all, cases.  If you are still running into stack overflows, you can defer as suggested above, or wrap functions with [`async.ensureAsync`](#ensureAsync)  Functions that are asynchronous by their nature do not have this problem and don't need the extra callback deferral.\n\nIf javascript's event loop is still a bit nebulous, check out [this article](http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/) or [this talk](http://2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the-event-loop-anyway.html) for more detailed information about how it works.\n\n\n### Binding a context to an iterator\n\nThis section is really about `bind`, not about `async`. If you are wondering how to\nmake `async` execute your iterators in a given context, or are confused as to why\na method of another library isn't working as an iterator, study this example:\n\n```js\n// Here is a simple object with an (unnecessarily roundabout) squaring method\nvar AsyncSquaringLibrary = {\n  squareExponent: 2,\n  square: function(number, callback){\n    var result = Math.pow(number, this.squareExponent);\n    setTimeout(function(){\n      callback(null, result);\n    }, 200);\n  }\n};\n\nasync.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){\n  // result is [NaN, NaN, NaN]\n  // This fails because the `this.squareExponent` expression in the square\n  // function is not evaluated in the context of AsyncSquaringLibrary, and is\n  // therefore undefined.\n});\n\nasync.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){\n  // result is [1, 4, 9]\n  // With the help of bind we can attach a context to the iterator before\n  // passing it to async. Now the square function will be executed in its\n  // 'home' AsyncSquaringLibrary context and the value of `this.squareExponent`\n  // will be as expected.\n});\n```\n\n## Download\n\nThe source is available for download from\n[GitHub](https://github.com/caolan/async/blob/master/lib/async.js).\nAlternatively, you can install using Node Package Manager (`npm`):\n\n    npm install async\n\nAs well as using Bower:\n\n    bower install async\n\n__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed\n\n## In the Browser\n\nSo far it's been tested in IE6, IE7, IE8, FF3.6 and Chrome 5.\n\nUsage:\n\n```html\n<script type=\"text/javascript\" src=\"async.js\"></script>\n<script type=\"text/javascript\">\n\n    async.map(data, asyncProcess, function(err, results){\n        alert(results);\n    });\n\n</script>\n```\n\n## Documentation\n\n### Collections\n\n* [`each`](#each)\n* [`eachSeries`](#eachSeries)\n* [`eachLimit`](#eachLimit)\n* [`forEachOf`](#forEachOf)\n* [`forEachOfSeries`](#forEachOfSeries)\n* [`forEachOfLimit`](#forEachOfLimit)\n* [`map`](#map)\n* [`mapSeries`](#mapSeries)\n* [`mapLimit`](#mapLimit)\n* [`filter`](#filter)\n* [`filterSeries`](#filterSeries)\n* [`reject`](#reject)\n* [`rejectSeries`](#rejectSeries)\n* [`reduce`](#reduce)\n* [`reduceRight`](#reduceRight)\n* [`detect`](#detect)\n* [`detectSeries`](#detectSeries)\n* [`sortBy`](#sortBy)\n* [`some`](#some)\n* [`every`](#every)\n* [`concat`](#concat)\n* [`concatSeries`](#concatSeries)\n\n### Control Flow\n\n* [`series`](#seriestasks-callback)\n* [`parallel`](#parallel)\n* [`parallelLimit`](#parallellimittasks-limit-callback)\n* [`whilst`](#whilst)\n* [`doWhilst`](#doWhilst)\n* [`until`](#until)\n* [`doUntil`](#doUntil)\n* [`during`](#during)\n* [`doDuring`](#doDuring)\n* [`forever`](#forever)\n* [`waterfall`](#waterfall)\n* [`compose`](#compose)\n* [`seq`](#seq)\n* [`applyEach`](#applyEach)\n* [`applyEachSeries`](#applyEachSeries)\n* [`queue`](#queue)\n* [`priorityQueue`](#priorityQueue)\n* [`cargo`](#cargo)\n* [`auto`](#auto)\n* [`retry`](#retry)\n* [`iterator`](#iterator)\n* [`times`](#times)\n* [`timesSeries`](#timesSeries)\n* [`timesLimit`](#timesLimit)\n\n### Utils\n\n* [`apply`](#apply)\n* [`nextTick`](#nextTick)\n* [`memoize`](#memoize)\n* [`unmemoize`](#unmemoize)\n* [`ensureAsync`](#ensureAsync)\n* [`constant`](#constant)\n* [`asyncify`](#asyncify)\n* [`wrapSync`](#wrapSync)\n* [`log`](#log)\n* [`dir`](#dir)\n* [`noConflict`](#noConflict)\n\n\n## Collections\n\n<a name=\"forEach\" />\n<a name=\"each\" />\n### each(arr, iterator, [callback])\n\nApplies the function `iterator` to each item in `arr`, in parallel.\nThe `iterator` is called with an item from the list, and a callback for when it\nhas finished. If the `iterator` passes an error to its `callback`, the main\n`callback` (for the `each` function) is immediately called with the error.\n\nNote, that since this function applies `iterator` to each item in parallel,\nthere is no guarantee that the iterator functions will complete in order.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n  The iterator is passed a `callback(err)` which must be called once it has\n  completed. If no error has occurred, the `callback` should be run without\n  arguments or with an explicit `null` argument.  The array index is not passed\n  to the iterator.  If you need the index, use [`forEachOf`](#forEachOf).\n* `callback(err)` - *Optional* A callback which is called when all `iterator` functions\n  have finished, or an error occurs.\n\n__Examples__\n\n\n```js\n// assuming openFiles is an array of file names and saveFile is a function\n// to save the modified contents of that file:\n\nasync.each(openFiles, saveFile, function(err){\n    // if any of the saves produced an error, err would equal that error\n});\n```\n\n```js\n// assuming openFiles is an array of file names\n\nasync.each(openFiles, function(file, callback) {\n\n  // Perform operation on file here.\n  console.log('Processing file ' + file);\n\n  if( file.length > 32 ) {\n    console.log('This file name is too long');\n    callback('File name too long');\n  } else {\n    // Do work to process file here\n    console.log('File processed');\n    callback();\n  }\n}, function(err){\n    // if any of the file processing produced an error, err would equal that error\n    if( err ) {\n      // One of the iterations produced an error.\n      // All processing will now stop.\n      console.log('A file failed to process');\n    } else {\n      console.log('All files have been processed successfully');\n    }\n});\n```\n\n---------------------------------------\n\n<a name=\"forEachSeries\" />\n<a name=\"eachSeries\" />\n### eachSeries(arr, iterator, [callback])\n\nThe same as [`each`](#each), only `iterator` is applied to each item in `arr` in\nseries. The next `iterator` is only called once the current one has completed.\nThis means the `iterator` functions will complete in order.\n\n\n---------------------------------------\n\n<a name=\"forEachLimit\" />\n<a name=\"eachLimit\" />\n### eachLimit(arr, limit, iterator, [callback])\n\nThe same as [`each`](#each), only no more than `limit` `iterator`s will be simultaneously\nrunning at any time.\n\nNote that the items in `arr` are not processed in batches, so there is no guarantee that\nthe first `limit` `iterator` functions will complete before any others are started.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `limit` - The maximum number of `iterator`s to run at any time.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n  The iterator is passed a `callback(err)` which must be called once it has\n  completed. If no error has occurred, the callback should be run without\n  arguments or with an explicit `null` argument.\n* `callback(err)` - *Optional* A callback which is called when all `iterator` functions\n  have finished, or an error occurs.\n\n__Example__\n\n```js\n// Assume documents is an array of JSON objects and requestApi is a\n// function that interacts with a rate-limited REST api.\n\nasync.eachLimit(documents, 20, requestApi, function(err){\n    // if any of the saves produced an error, err would equal that error\n});\n```\n\n---------------------------------------\n\n<a name=\"forEachOf\" />\n<a name=\"eachOf\" />\n\n### forEachOf(obj, iterator, [callback])\n\nLike `each`, except that it iterates over objects, and passes the key as the second argument to the iterator.\n\n__Arguments__\n\n* `obj` - An object or array to iterate over.\n* `iterator(item, key, callback)` - A function to apply to each item in `obj`.\nThe `key` is the item's key, or index in the case of an array. The iterator is\npassed a `callback(err)` which must be called once it has completed. If no\nerror has occurred, the callback should be run without arguments or with an\nexplicit `null` argument.\n* `callback(err)` - *Optional* A callback which is called when all `iterator` functions have finished, or an error occurs.\n\n__Example__\n\n```js\nvar obj = {dev: \"/dev.json\", test: \"/test.json\", prod: \"/prod.json\"};\nvar configs = {};\n\nasync.forEachOf(obj, function (value, key, callback) {\n  fs.readFile(__dirname + value, \"utf8\", function (err, data) {\n    if (err) return callback(err);\n    try {\n      configs[key] = JSON.parse(data);\n    } catch (e) {\n      return callback(e);\n    }\n    callback();\n  })\n}, function (err) {\n  if (err) console.error(err.message);\n  // configs is now a map of JSON data\n  doSomethingWith(configs);\n})\n```\n\n---------------------------------------\n\n<a name=\"forEachOfSeries\" />\n<a name=\"eachOfSeries\" />\n\n### forEachOfSeries(obj, iterator, [callback])\n\nLike [`forEachOf`](#forEachOf), except only one `iterator` is run at a time.  The order of execution is not guaranteed for objects, but it will be guaranteed for arrays.\n\n---------------------------------------\n\n<a name=\"forEachOfLimit\" />\n<a name=\"eachOfLimit\" />\n\n### forEachOfLimit(obj, limit, iterator, [callback])\n\nLike [`forEachOf`](#forEachOf), except the number of `iterator`s running at a given time is controlled by `limit`.\n\n\n---------------------------------------\n\n<a name=\"map\" />\n### map(arr, iterator, [callback])\n\nProduces a new array of values by mapping each value in `arr` through\nthe `iterator` function. The `iterator` is called with an item from `arr` and a\ncallback for when it has finished processing. Each of these callback takes 2 arguments:\nan `error`, and the transformed item from `arr`. If `iterator` passes an error to its\ncallback, the main `callback` (for the `map` function) is immediately called with the error.\n\nNote, that since this function applies the `iterator` to each item in parallel,\nthere is no guarantee that the `iterator` functions will complete in order.\nHowever, the results array will be in the same order as the original `arr`.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n  The iterator is passed a `callback(err, transformed)` which must be called once\n  it has completed with an error (which can be `null`) and a transformed item.\n* `callback(err, results)` - *Optional* A callback which is called when all `iterator`\n  functions have finished, or an error occurs. Results is an array of the\n  transformed items from the `arr`.\n\n__Example__\n\n```js\nasync.map(['file1','file2','file3'], fs.stat, function(err, results){\n    // results is now an array of stats for each file\n});\n```\n\n---------------------------------------\n\n<a name=\"mapSeries\" />\n### mapSeries(arr, iterator, [callback])\n\nThe same as [`map`](#map), only the `iterator` is applied to each item in `arr` in\nseries. The next `iterator` is only called once the current one has completed.\nThe results array will be in the same order as the original.\n\n\n---------------------------------------\n\n<a name=\"mapLimit\" />\n### mapLimit(arr, limit, iterator, [callback])\n\nThe same as [`map`](#map), only no more than `limit` `iterator`s will be simultaneously\nrunning at any time.\n\nNote that the items are not processed in batches, so there is no guarantee that\nthe first `limit` `iterator` functions will complete before any others are started.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `limit` - The maximum number of `iterator`s to run at any time.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n  The iterator is passed a `callback(err, transformed)` which must be called once\n  it has completed with an error (which can be `null`) and a transformed item.\n* `callback(err, results)` - A callback which is called when all `iterator`\n  calls have finished, or an error occurs. The result is an array of the\n  transformed items from the original `arr`.\n\n__Example__\n\n```js\nasync.mapLimit(['file1','file2','file3'], 1, fs.stat, function(err, results){\n    // results is now an array of stats for each file\n});\n```\n\n---------------------------------------\n\n<a name=\"select\" />\n<a name=\"filter\" />\n### filter(arr, iterator, [callback])\n\n__Alias:__ `select`\n\nReturns a new array of all the values in `arr` which pass an async truth test.\n_The callback for each `iterator` call only accepts a single argument of `true` or\n`false`; it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like `fs.exists`. This operation is\nperformed in parallel, but the results array will be in the same order as the\noriginal.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in `arr`.\n  The `iterator` is passed a `callback(truthValue)`, which must be called with a\n  boolean argument once it has completed.\n* `callback(results)` - *Optional* A callback which is called after all the `iterator`\n  functions have finished.\n\n__Example__\n\n```js\nasync.filter(['file1','file2','file3'], fs.exists, function(results){\n    // results now equals an array of the existing files\n});\n```\n\n---------------------------------------\n\n<a name=\"selectSeries\" />\n<a name=\"filterSeries\" />\n### filterSeries(arr, iterator, [callback])\n\n__Alias:__ `selectSeries`\n\nThe same as [`filter`](#filter) only the `iterator` is applied to each item in `arr` in\nseries. The next `iterator` is only called once the current one has completed.\nThe results array will be in the same order as the original.\n\n---------------------------------------\n\n<a name=\"reject\" />\n### reject(arr, iterator, [callback])\n\nThe opposite of [`filter`](#filter). Removes values that pass an `async` truth test.\n\n---------------------------------------\n\n<a name=\"rejectSeries\" />\n### rejectSeries(arr, iterator, [callback])\n\nThe same as [`reject`](#reject), only the `iterator` is applied to each item in `arr`\nin series.\n\n\n---------------------------------------\n\n<a name=\"reduce\" />\n### reduce(arr, memo, iterator, [callback])\n\n__Aliases:__ `inject`, `foldl`\n\nReduces `arr` into a single value using an async `iterator` to return\neach successive step. `memo` is the initial state of the reduction.\nThis function only operates in series.\n\nFor performance reasons, it may make sense to split a call to this function into\na parallel map, and then use the normal `Array.prototype.reduce` on the results.\nThis function is for situations where each step in the reduction needs to be async;\nif you can get the data before reducing it, then it's probably a good idea to do so.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `memo` - The initial state of the reduction.\n* `iterator(memo, item, callback)` - A function applied to each item in the\n  array to produce the next step in the reduction. The `iterator` is passed a\n  `callback(err, reduction)` which accepts an optional error as its first\n  argument, and the state of the reduction as the second. If an error is\n  passed to the callback, the reduction is stopped and the main `callback` is\n  immediately called with the error.\n* `callback(err, result)` - *Optional* A callback which is called after all the `iterator`\n  functions have finished. Result is the reduced value.\n\n__Example__\n\n```js\nasync.reduce([1,2,3], 0, function(memo, item, callback){\n    // pointless async:\n    process.nextTick(function(){\n        callback(null, memo + item)\n    });\n}, function(err, result){\n    // result is now equal to the last value of memo, which is 6\n});\n```\n\n---------------------------------------\n\n<a name=\"reduceRight\" />\n### reduceRight(arr, memo, iterator, [callback])\n\n__Alias:__ `foldr`\n\nSame as [`reduce`](#reduce), only operates on `arr` in reverse order.\n\n\n---------------------------------------\n\n<a name=\"detect\" />\n### detect(arr, iterator, [callback])\n\nReturns the first value in `arr` that passes an async truth test. The\n`iterator` is applied in parallel, meaning the first iterator to return `true` will\nfire the detect `callback` with that result. That means the result might not be\nthe first item in the original `arr` (in terms of order) that passes the test.\n\nIf order within the original `arr` is important, then look at [`detectSeries`](#detectSeries).\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in `arr`.\n  The iterator is passed a `callback(truthValue)` which must be called with a\n  boolean argument once it has completed. **Note: this callback does not take an error as its first argument.**\n* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns\n  `true`, or after all the `iterator` functions have finished. Result will be\n  the first item in the array that passes the truth test (iterator) or the\n  value `undefined` if none passed.  **Note: this callback does not take an error as its first argument.**\n\n__Example__\n\n```js\nasync.detect(['file1','file2','file3'], fs.exists, function(result){\n    // result now equals the first file in the list that exists\n});\n```\n\n---------------------------------------\n\n<a name=\"detectSeries\" />\n### detectSeries(arr, iterator, [callback])\n\nThe same as [`detect`](#detect), only the `iterator` is applied to each item in `arr`\nin series. This means the result is always the first in the original `arr` (in\nterms of array order) that passes the truth test.\n\n\n---------------------------------------\n\n<a name=\"sortBy\" />\n### sortBy(arr, iterator, [callback])\n\nSorts a list by the results of running each `arr` value through an async `iterator`.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n  The iterator is passed a `callback(err, sortValue)` which must be called once it\n  has completed with an error (which can be `null`) and a value to use as the sort\n  criteria.\n* `callback(err, results)` - *Optional* A callback which is called after all the `iterator`\n  functions have finished, or an error occurs. Results is the items from\n  the original `arr` sorted by the values returned by the `iterator` calls.\n\n__Example__\n\n```js\nasync.sortBy(['file1','file2','file3'], function(file, callback){\n    fs.stat(file, function(err, stats){\n        callback(err, stats.mtime);\n    });\n}, function(err, results){\n    // results is now the original array of files sorted by\n    // modified date\n});\n```\n\n__Sort Order__\n\nBy modifying the callback parameter the sorting order can be influenced:\n\n```js\n//ascending order\nasync.sortBy([1,9,3,5], function(x, callback){\n    callback(null, x);\n}, function(err,result){\n    //result callback\n} );\n\n//descending order\nasync.sortBy([1,9,3,5], function(x, callback){\n    callback(null, x*-1);    //<- x*-1 instead of x, turns the order around\n}, function(err,result){\n    //result callback\n} );\n```\n\n---------------------------------------\n\n<a name=\"some\" />\n### some(arr, iterator, [callback])\n\n__Alias:__ `any`\n\nReturns `true` if at least one element in the `arr` satisfies an async test.\n_The callback for each iterator call only accepts a single argument of `true` or\n`false`; it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like `fs.exists`. Once any iterator\ncall returns `true`, the main `callback` is immediately called.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in the array\n  in parallel. The iterator is passed a `callback(truthValue)`` which must be\n  called with a boolean argument once it has completed.\n* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns\n  `true`, or after all the iterator functions have finished. Result will be\n  either `true` or `false` depending on the values of the async tests.\n\n **Note: the callbacks do not take an error as their first argument.**\n__Example__\n\n```js\nasync.some(['file1','file2','file3'], fs.exists, function(result){\n    // if result is true then at least one of the files exists\n});\n```\n\n---------------------------------------\n\n<a name=\"every\" />\n### every(arr, iterator, [callback])\n\n__Alias:__ `all`\n\nReturns `true` if every element in `arr` satisfies an async test.\n_The callback for each `iterator` call only accepts a single argument of `true` or\n`false`; it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like `fs.exists`.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in the array\n  in parallel. The iterator is passed a `callback(truthValue)` which must be\n  called with a  boolean argument once it has completed.\n* `callback(result)` - *Optional* A callback which is called after all the `iterator`\n  functions have finished. Result will be either `true` or `false` depending on\n  the values of the async tests.\n\n **Note: the callbacks do not take an error as their first argument.**\n\n__Example__\n\n```js\nasync.every(['file1','file2','file3'], fs.exists, function(result){\n    // if result is true then every file exists\n});\n```\n\n---------------------------------------\n\n<a name=\"concat\" />\n### concat(arr, iterator, [callback])\n\nApplies `iterator` to each item in `arr`, concatenating the results. Returns the\nconcatenated list. The `iterator`s are called in parallel, and the results are\nconcatenated as they return. There is no guarantee that the results array will\nbe returned in the original order of `arr` passed to the `iterator` function.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n  The iterator is passed a `callback(err, results)` which must be called once it\n  has completed with an error (which can be `null`) and an array of results.\n* `callback(err, results)` - *Optional* A callback which is called after all the `iterator`\n  functions have finished, or an error occurs. Results is an array containing\n  the concatenated results of the `iterator` function.\n\n__Example__\n\n```js\nasync.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){\n    // files is now a list of filenames that exist in the 3 directories\n});\n```\n\n---------------------------------------\n\n<a name=\"concatSeries\" />\n### concatSeries(arr, iterator, [callback])\n\nSame as [`concat`](#concat), but executes in series instead of parallel.\n\n\n## Control Flow\n\n<a name=\"series\" />\n### series(tasks, [callback])\n\nRun the functions in the `tasks` array in series, each one running once the previous\nfunction has completed. If any functions in the series pass an error to its\ncallback, no more functions are run, and `callback` is immediately called with the value of the error.\nOtherwise, `callback` receives an array of results when `tasks` have completed.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function, and the results will be passed to the final `callback` as an object\ninstead of an array. This can be a more readable way of handling results from\n[`series`](#series).\n\n**Note** that while many implementations preserve the order of object properties, the\n[ECMAScript Language Specifcation](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\nexplicitly states that\n\n> The mechanics and order of enumerating the properties is not specified.\n\nSo if you rely on the order in which your series of functions are executed, and want\nthis to work on all platforms, consider using an array.\n\n__Arguments__\n\n* `tasks` - An array or object containing functions to run, each function is passed\n  a `callback(err, result)` it must call on completion with an error `err` (which can\n  be `null`) and an optional `result` value.\n* `callback(err, results)` - An optional callback to run once all the functions\n  have completed. This function gets a results array (or object) containing all\n  the result arguments passed to the `task` callbacks.\n\n__Example__\n\n```js\nasync.series([\n    function(callback){\n        // do some stuff ...\n        callback(null, 'one');\n    },\n    function(callback){\n        // do some more stuff ...\n        callback(null, 'two');\n    }\n],\n// optional callback\nfunction(err, results){\n    // results is now equal to ['one', 'two']\n});\n\n\n// an example using an object instead of an array\nasync.series({\n    one: function(callback){\n        setTimeout(function(){\n            callback(null, 1);\n        }, 200);\n    },\n    two: function(callback){\n        setTimeout(function(){\n            callback(null, 2);\n        }, 100);\n    }\n},\nfunction(err, results) {\n    // results is now equal to: {one: 1, two: 2}\n});\n```\n\n---------------------------------------\n\n<a name=\"parallel\" />\n### parallel(tasks, [callback])\n\nRun the `tasks` array of functions in parallel, without waiting until the previous\nfunction has completed. If any of the functions pass an error to its\ncallback, the main `callback` is immediately called with the value of the error.\nOnce the `tasks` have completed, the results are passed to the final `callback` as an\narray.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final `callback` as an object\ninstead of an array. This can be a more readable way of handling results from\n[`parallel`](#parallel).\n\n\n__Arguments__\n\n* `tasks` - An array or object containing functions to run. Each function is passed\n  a `callback(err, result)` which it must call on completion with an error `err`\n  (which can be `null`) and an optional `result` value.\n* `callback(err, results)` - An optional callback to run once all the functions\n  have completed. This function gets a results array (or object) containing all\n  the result arguments passed to the task callbacks.\n\n__Example__\n\n```js\nasync.parallel([\n    function(callback){\n        setTimeout(function(){\n            callback(null, 'one');\n        }, 200);\n    },\n    function(callback){\n        setTimeout(function(){\n            callback(null, 'two');\n        }, 100);\n    }\n],\n// optional callback\nfunction(err, results){\n    // the results array will equal ['one','two'] even though\n    // the second function had a shorter timeout.\n});\n\n\n// an example using an object instead of an array\nasync.parallel({\n    one: function(callback){\n        setTimeout(function(){\n            callback(null, 1);\n        }, 200);\n    },\n    two: function(callback){\n        setTimeout(function(){\n            callback(null, 2);\n        }, 100);\n    }\n},\nfunction(err, results) {\n    // results is now equals to: {one: 1, two: 2}\n});\n```\n\n---------------------------------------\n\n<a name=\"parallelLimit\" />\n### parallelLimit(tasks, limit, [callback])\n\nThe same as [`parallel`](#parallel), only `tasks` are executed in parallel\nwith a maximum of `limit` tasks executing at any time.\n\nNote that the `tasks` are not executed in batches, so there is no guarantee that\nthe first `limit` tasks will complete before any others are started.\n\n__Arguments__\n\n* `tasks` - An array or object containing functions to run, each function is passed\n  a `callback(err, result)` it must call on completion with an error `err` (which can\n  be `null`) and an optional `result` value.\n* `limit` - The maximum number of `tasks` to run at any time.\n* `callback(err, results)` - An optional callback to run once all the functions\n  have completed. This function gets a results array (or object) containing all\n  the result arguments passed to the `task` callbacks.\n\n---------------------------------------\n\n<a name=\"whilst\" />\n### whilst(test, fn, callback)\n\nRepeatedly call `fn`, while `test` returns `true`. Calls `callback` when stopped,\nor an error occurs.\n\n__Arguments__\n\n* `test()` - synchronous truth test to perform before each execution of `fn`.\n* `fn(callback)` - A function which is called each time `test` passes. The function is\n  passed a `callback(err)`, which must be called once it has completed with an\n  optional `err` argument.\n* `callback(err)` - A callback which is called after the test fails and repeated\n  execution of `fn` has stopped.\n\n__Example__\n\n```js\nvar count = 0;\n\nasync.whilst(\n    function () { return count < 5; },\n    function (callback) {\n        count++;\n        setTimeout(callback, 1000);\n    },\n    function (err) {\n        // 5 seconds have passed\n    }\n);\n```\n\n---------------------------------------\n\n<a name=\"doWhilst\" />\n### doWhilst(fn, test, callback)\n\nThe post-check version of [`whilst`](#whilst). To reflect the difference in\nthe order of operations, the arguments `test` and `fn` are switched.\n\n`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n\n---------------------------------------\n\n<a name=\"until\" />\n### until(test, fn, callback)\n\nRepeatedly call `fn` until `test` returns `true`. Calls `callback` when stopped,\nor an error occurs.\n\nThe inverse of [`whilst`](#whilst).\n\n---------------------------------------\n\n<a name=\"doUntil\" />\n### doUntil(fn, test, callback)\n\nLike [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`.\n\n---------------------------------------\n\n<a name=\"during\" />\n### during(test, fn, callback)\n\nLike [`whilst`](#whilst), except the `test` is an asynchronous function that is passed a callback in the form of `function (err, truth)`. If error is passed to `test` or `fn`, the main callback is immediately called with the value of the error.\n\n__Example__\n\n```js\nvar count = 0;\n\nasync.during(\n    function (callback) { \n      return callback(null, count < 5); \n    },\n    function (callback) {\n        count++;\n        setTimeout(callback, 1000);\n    },\n    function (err) {\n        // 5 seconds have passed\n    }\n);\n```\n\n---------------------------------------\n\n<a name=\"doDuring\" />\n### doDuring(fn, test, callback)\n\nThe post-check version of [`during`](#during). To reflect the difference in\nthe order of operations, the arguments `test` and `fn` are switched.\n\nAlso a version of [`doWhilst`](#doWhilst) with asynchronous `test` function.\n\n---------------------------------------\n\n<a name=\"forever\" />\n### forever(fn, [errback])\n\nCalls the asynchronous function `fn` with a callback parameter that allows it to\ncall itself again, in series, indefinitely.\n\nIf an error is passed to the callback then `errback` is called with the\nerror, and execution stops, otherwise it will never be called.\n\n```js\nasync.forever(\n    function(next) {\n        // next is suitable for passing to things that need a callback(err [, whatever]);\n        // it will result in this function being called again.\n    },\n    function(err) {\n        // if next is called with a value in its first parameter, it will appear\n        // in here as 'err', and execution will stop.\n    }\n);\n```\n\n---------------------------------------\n\n<a name=\"waterfall\" />\n### waterfall(tasks, [callback])\n\nRuns the `tasks` array of functions in series, each passing their results to the next in\nthe array. However, if any of the `tasks` pass an error to their own callback, the\nnext function is not executed, and the main `callback` is immediately called with\nthe error.\n\n__Arguments__\n\n* `tasks` - An array of functions to run, each function is passed a\n  `callback(err, result1, result2, ...)` it must call on completion. The first\n  argument is an error (which can be `null`) and any further arguments will be\n  passed as arguments in order to the next task.\n* `callback(err, [results])` - An optional callback to run once all the functions\n  have completed. This will be passed the results of the last task's callback.\n\n\n\n__Example__\n\n```js\nasync.waterfall([\n    function(callback) {\n        callback(null, 'one', 'two');\n    },\n    function(arg1, arg2, callback) {\n      // arg1 now equals 'one' and arg2 now equals 'two'\n        callback(null, 'three');\n    },\n    function(arg1, callback) {\n        // arg1 now equals 'three'\n        callback(null, 'done');\n    }\n], function (err, result) {\n    // result now equals 'done'\n});\n```\n\n---------------------------------------\n<a name=\"compose\" />\n### compose(fn1, fn2...)\n\nCreates a function which is a composition of the passed asynchronous\nfunctions. Each function consumes the return value of the function that\nfollows. Composing functions `f()`, `g()`, and `h()` would produce the result of\n`f(g(h()))`, only this version uses callbacks to obtain the return values.\n\nEach function is executed with the `this` binding of the composed function.\n\n__Arguments__\n\n* `functions...` - the asynchronous functions to compose\n\n\n__Example__\n\n```js\nfunction add1(n, callback) {\n    setTimeout(function () {\n        callback(null, n + 1);\n    }, 10);\n}\n\nfunction mul3(n, callback) {\n    setTimeout(function () {\n        callback(null, n * 3);\n    }, 10);\n}\n\nvar add1mul3 = async.compose(mul3, add1);\n\nadd1mul3(4, function (err, result) {\n   // result now equals 15\n});\n```\n\n---------------------------------------\n<a name=\"seq\" />\n### seq(fn1, fn2...)\n\nVersion of the compose function that is more natural to read.\nEach function consumes the return value of the previous function.\nIt is the equivalent of [`compose`](#compose) with the arguments reversed.\n\nEach function is executed with the `this` binding of the composed function.\n\n__Arguments__\n\n* `functions...` - the asynchronous functions to compose\n\n\n__Example__\n\n```js\n// Requires lodash (or underscore), express3 and dresende's orm2.\n// Part of an app, that fetches cats of the logged user.\n// This example uses `seq` function to avoid overnesting and error\n// handling clutter.\napp.get('/cats', function(request, response) {\n  var User = request.models.User;\n  async.seq(\n    _.bind(User.get, User),  // 'User.get' has signature (id, callback(err, data))\n    function(user, fn) {\n      user.getCats(fn);      // 'getCats' has signature (callback(err, data))\n    }\n  )(req.session.user_id, function (err, cats) {\n    if (err) {\n      console.error(err);\n      response.json({ status: 'error', message: err.message });\n    } else {\n      response.json({ status: 'ok', message: 'Cats found', data: cats });\n    }\n  });\n});\n```\n\n---------------------------------------\n<a name=\"applyEach\" />\n### applyEach(fns, args..., callback)\n\nApplies the provided arguments to each function in the array, calling\n`callback` after all functions have completed. If you only provide the first\nargument, then it will return a function which lets you pass in the\narguments as if it were a single function call.\n\n__Arguments__\n\n* `fns` - the asynchronous functions to all call with the same arguments\n* `args...` - any number of separate arguments to pass to the function\n* `callback` - the final argument should be the callback, called when all\n  functions have completed processing\n\n\n__Example__\n\n```js\nasync.applyEach([enableSearch, updateSchema], 'bucket', callback);\n\n// partial application example:\nasync.each(\n    buckets,\n    async.applyEach([enableSearch, updateSchema]),\n    callback\n);\n```\n\n---------------------------------------\n\n<a name=\"applyEachSeries\" />\n### applyEachSeries(arr, args..., callback)\n\nThe same as [`applyEach`](#applyEach) only the functions are applied in series.\n\n---------------------------------------\n\n<a name=\"queue\" />\n### queue(worker, [concurrency])\n\nCreates a `queue` object with the specified `concurrency`. Tasks added to the\n`queue` are processed in parallel (up to the `concurrency` limit). If all\n`worker`s are in progress, the task is queued until one becomes available.\nOnce a `worker` completes a `task`, that `task`'s callback is called.\n\n__Arguments__\n\n* `worker(task, callback)` - An asynchronous function for processing a queued\n  task, which must call its `callback(err)` argument when finished, with an\n  optional `error` as an argument.  If you want to handle errors from an individual task, pass a callback to `q.push()`.\n* `concurrency` - An `integer` for determining how many `worker` functions should be\n  run in parallel.  If omitted, the concurrency defaults to `1`.  If the concurrency is `0`, an error is thrown.\n\n__Queue objects__\n\nThe `queue` object returned by this function has the following properties and\nmethods:\n\n* `length()` - a function returning the number of items waiting to be processed.\n* `started` - a function returning whether or not any items have been pushed and processed by the queue\n* `running()` - a function returning the number of items currently being processed.\n* `idle()` - a function returning false if there are items waiting or being processed, or true if not.\n* `concurrency` - an integer for determining how many `worker` functions should be\n  run in parallel. This property can be changed after a `queue` is created to\n  alter the concurrency on-the-fly.\n* `push(task, [callback])` - add a new task to the `queue`. Calls `callback` once\n  the `worker` has finished processing the task. Instead of a single task, a `tasks` array\n  can be submitted. The respective callback is used for every task in the list.\n* `unshift(task, [callback])` - add a new task to the front of the `queue`.\n* `saturated` - a callback that is called when the `queue` length hits the `concurrency` limit,\n   and further tasks will be queued.\n* `empty` - a callback that is called when the last item from the `queue` is given to a `worker`.\n* `drain` - a callback that is called when the last item from the `queue` has returned from the `worker`.\n* `paused` - a boolean for determining whether the queue is in a paused state\n* `pause()` - a function that pauses the processing of tasks until `resume()` is called.\n* `resume()` - a function that resumes the processing of queued tasks when the queue is paused.\n* `kill()` - a function that removes the `drain` callback and empties remaining tasks from the queue forcing it to go idle.\n\n__Example__\n\n```js\n// create a queue object with concurrency 2\n\nvar q = async.queue(function (task, callback) {\n    console.log('hello ' + task.name);\n    callback();\n}, 2);\n\n\n// assign a callback\nq.drain = function() {\n    console.log('all items have been processed');\n}\n\n// add some items to the queue\n\nq.push({name: 'foo'}, function (err) {\n    console.log('finished processing foo');\n});\nq.push({name: 'bar'}, function (err) {\n    console.log('finished processing bar');\n});\n\n// add some items to the queue (batch-wise)\n\nq.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) {\n    console.log('finished processing item');\n});\n\n// add some items to the front of the queue\n\nq.unshift({name: 'bar'}, function (err) {\n    console.log('finished processing bar');\n});\n```\n\n\n---------------------------------------\n\n<a name=\"priorityQueue\" />\n### priorityQueue(worker, concurrency)\n\nThe same as [`queue`](#queue) only tasks are assigned a priority and completed in ascending priority order. There are two differences between `queue` and `priorityQueue` objects:\n\n* `push(task, priority, [callback])` - `priority` should be a number. If an array of\n  `tasks` is given, all tasks will be assigned the same priority.\n* The `unshift` method was removed.\n\n---------------------------------------\n\n<a name=\"cargo\" />\n### cargo(worker, [payload])\n\nCreates a `cargo` object with the specified payload. Tasks added to the\ncargo will be processed altogether (up to the `payload` limit). If the\n`worker` is in progress, the task is queued until it becomes available. Once\nthe `worker` has completed some tasks, each callback of those tasks is called.\nCheck out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966) for how `cargo` and `queue` work.\n\nWhile [queue](#queue) passes only one task to one of a group of workers\nat a time, cargo passes an array of tasks to a single worker, repeating\nwhen the worker is finished.\n\n__Arguments__\n\n* `worker(tasks, callback)` - An asynchronous function for processing an array of\n  queued tasks, which must call its `callback(err)` argument when finished, with\n  an optional `err` argument.\n* `payload` - An optional `integer` for determining how many tasks should be\n  processed per round; if omitted, the default is unlimited.\n\n__Cargo objects__\n\nThe `cargo` object returned by this function has the following properties and\nmethods:\n\n* `length()` - A function returning the number of items waiting to be processed.\n* `payload` - An `integer` for determining how many tasks should be\n  process per round. This property can be changed after a `cargo` is created to\n  alter the payload on-the-fly.\n* `push(task, [callback])` - Adds `task` to the `queue`. The callback is called\n  once the `worker` has finished processing the task. Instead of a single task, an array of `tasks`\n  can be submitted. The respective callback is used for every task in the list.\n* `saturated` - A callback that is called when the `queue.length()` hits the concurrency and further tasks will be queued.\n* `empty` - A callback that is called when the last item from the `queue` is given to a `worker`.\n* `drain` - A callback that is called when the last item from the `queue` has returned from the `worker`.\n* `idle()`, `pause()`, `resume()`, `kill()` - cargo inherits all of the same methods and event calbacks as [`queue`](#queue)\n\n__Example__\n\n```js\n// create a cargo object with payload 2\n\nvar cargo = async.cargo(function (tasks, callback) {\n    for(var i=0; i<tasks.length; i++){\n      console.log('hello ' + tasks[i].name);\n    }\n    callback();\n}, 2);\n\n\n// add some items\n\ncargo.push({name: 'foo'}, function (err) {\n    console.log('finished processing foo');\n});\ncargo.push({name: 'bar'}, function (err) {\n    console.log('finished processing bar');\n});\ncargo.push({name: 'baz'}, function (err) {\n    console.log('finished processing baz');\n});\n```\n\n---------------------------------------\n\n<a name=\"auto\" />\n### auto(tasks, [callback])\n\nDetermines the best order for running the functions in `tasks`, based on their\nrequirements. Each function can optionally depend on other functions being completed\nfirst, and each function is run as soon as its requirements are satisfied.\n\nIf any of the functions pass an error to their callback, it will not\ncomplete (so any other functions depending on it will not run), and the main\n`callback` is immediately called with the error. Functions also receive an\nobject containing the results of functions which have completed so far.\n\nNote, all functions are called with a `results` object as a second argument,\nso it is unsafe to pass functions in the `tasks` object which cannot handle the\nextra argument.\n\nFor example, this snippet of code:\n\n```js\nasync.auto({\n  readData: async.apply(fs.readFile, 'data.txt', 'utf-8')\n}, callback);\n```\n\nwill have the effect of calling `readFile` with the results object as the last\nargument, which will fail:\n\n```js\nfs.readFile('data.txt', 'utf-8', cb, {});\n```\n\nInstead, wrap the call to `readFile` in a function which does not forward the\n`results` object:\n\n```js\nasync.auto({\n  readData: function(cb, results){\n    fs.readFile('data.txt', 'utf-8', cb);\n  }\n}, callback);\n```\n\n__Arguments__\n\n* `tasks` - An object. Each of its properties is either a function or an array of\n  requirements, with the function itself the last item in the array. The object's key\n  of a property serves as the name of the task defined by that property,\n  i.e. can be used when specifying requirements for other tasks.\n  The function receives two arguments: (1) a `callback(err, result)` which must be\n  called when finished, passing an `error` (which can be `null`) and the result of\n  the function's execution, and (2) a `results` object, containing the results of\n  the previously executed functions.\n* `callback(err, results)` - An optional callback which is called when all the\n  tasks have been completed. It receives the `err` argument if any `tasks`\n  pass an error to their callback. Results are always returned; however, if\n  an error occurs, no further `tasks` will be performed, and the results\n  object will only contain partial results.\n\n\n__Example__\n\n```js\nasync.auto({\n    get_data: function(callback){\n        console.log('in get_data');\n        // async code to get some data\n        callback(null, 'data', 'converted to array');\n    },\n    make_folder: function(callback){\n        console.log('in make_folder');\n        // async code to create a directory to store a file in\n        // this is run at the same time as getting the data\n        callback(null, 'folder');\n    },\n    write_file: ['get_data', 'make_folder', function(callback, results){\n        console.log('in write_file', JSON.stringify(results));\n        // once there is some data and the directory exists,\n        // write the data to a file in the directory\n        callback(null, 'filename');\n    }],\n    email_link: ['write_file', function(callback, results){\n        console.log('in email_link', JSON.stringify(results));\n        // once the file is written let's email a link to it...\n        // results.write_file contains the filename returned by write_file.\n        callback(null, {'file':results.write_file, 'email':'user@example.com'});\n    }]\n}, function(err, results) {\n    console.log('err = ', err);\n    console.log('results = ', results);\n});\n```\n\nThis is a fairly trivial example, but to do this using the basic parallel and\nseries functions would look like this:\n\n```js\nasync.parallel([\n    function(callback){\n        console.log('in get_data');\n        // async code to get some data\n        callback(null, 'data', 'converted to array');\n    },\n    function(callback){\n        console.log('in make_folder');\n        // async code to create a directory to store a file in\n        // this is run at the same time as getting the data\n        callback(null, 'folder');\n    }\n],\nfunction(err, results){\n    async.series([\n        function(callback){\n            console.log('in write_file', JSON.stringify(results));\n            // once there is some data and the directory exists,\n            // write the data to a file in the directory\n            results.push('filename');\n            callback(null);\n        },\n        function(callback){\n            console.log('in email_link', JSON.stringify(results));\n            // once the file is written let's email a link to it...\n            callback(null, {'file':results.pop(), 'email':'user@example.com'});\n        }\n    ]);\n});\n```\n\nFor a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding\nnew tasks much easier (and the code more readable).\n\n\n---------------------------------------\n\n<a name=\"retry\" />\n### retry([opts = {times: 5, interval: 0}| 5], task, [callback])\n\nAttempts to get a successful response from `task` no more than `times` times before\nreturning an error. If the task is successful, the `callback` will be passed the result\nof the successful task. If all attempts fail, the callback will be passed the error and\nresult (if any) of the final attempt.\n\n__Arguments__\n\n* `opts` - Can be either an object with `times` and `interval` or a number. `times` is how many attempts should be made before giving up. `interval` is how long to wait inbetween attempts. Defaults to {times: 5, interval: 0}\n  * if a number is passed in it sets `times` only (with `interval` defaulting to 0).\n* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)`\n  which must be called when finished, passing `err` (which can be `null`) and the `result` of\n  the function's execution, and (2) a `results` object, containing the results of\n  the previously executed functions (if nested inside another control flow).\n* `callback(err, results)` - An optional callback which is called when the\n  task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`.\n\nThe [`retry`](#retry) function can be used as a stand-alone control flow by passing a\ncallback, as shown below:\n\n```js\nasync.retry(3, apiMethod, function(err, result) {\n    // do something with the result\n});\n```\n\n```js\nasync.retry({times: 3, interval: 200}, apiMethod, function(err, result) {\n    // do something with the result\n});\n```\n\nIt can also be embeded within other control flow functions to retry individual methods\nthat are not as reliable, like this:\n\n```js\nasync.auto({\n    users: api.getUsers.bind(api),\n    payments: async.retry(3, api.getPayments.bind(api))\n}, function(err, results) {\n  // do something with the results\n});\n```\n\n\n---------------------------------------\n\n<a name=\"iterator\" />\n### iterator(tasks)\n\nCreates an iterator function which calls the next function in the `tasks` array,\nreturning a continuation to call the next one after that. It's also possible to\n“peek” at the next iterator with `iterator.next()`.\n\nThis function is used internally by the `async` module, but can be useful when\nyou want to manually control the flow of functions in series.\n\n__Arguments__\n\n* `tasks` - An array of functions to run.\n\n__Example__\n\n```js\nvar iterator = async.iterator([\n    function(){ sys.p('one'); },\n    function(){ sys.p('two'); },\n    function(){ sys.p('three'); }\n]);\n\nnode> var iterator2 = iterator();\n'one'\nnode> var iterator3 = iterator2();\n'two'\nnode> iterator3();\n'three'\nnode> var nextfn = iterator2.next();\nnode> nextfn();\n'three'\n```\n\n---------------------------------------\n\n<a name=\"apply\" />\n### apply(function, arguments..)\n\nCreates a continuation function with some arguments already applied.\n\nUseful as a shorthand when combined with other control flow functions. Any arguments\npassed to the returned function are added to the arguments originally passed\nto apply.\n\n__Arguments__\n\n* `function` - The function you want to eventually apply all arguments to.\n* `arguments...` - Any number of arguments to automatically apply when the\n  continuation is called.\n\n__Example__\n\n```js\n// using apply\n\nasync.parallel([\n    async.apply(fs.writeFile, 'testfile1', 'test1'),\n    async.apply(fs.writeFile, 'testfile2', 'test2'),\n]);\n\n\n// the same process without using apply\n\nasync.parallel([\n    function(callback){\n        fs.writeFile('testfile1', 'test1', callback);\n    },\n    function(callback){\n        fs.writeFile('testfile2', 'test2', callback);\n    }\n]);\n```\n\nIt's possible to pass any number of additional arguments when calling the\ncontinuation:\n\n```js\nnode> var fn = async.apply(sys.puts, 'one');\nnode> fn('two', 'three');\none\ntwo\nthree\n```\n\n---------------------------------------\n\n<a name=\"nextTick\" />\n### nextTick(callback), setImmediate(callback)\n\nCalls `callback` on a later loop around the event loop. In Node.js this just\ncalls `process.nextTick`; in the browser it falls back to `setImmediate(callback)`\nif available, otherwise `setTimeout(callback, 0)`, which means other higher priority\nevents may precede the execution of `callback`.\n\nThis is used internally for browser-compatibility purposes.\n\n__Arguments__\n\n* `callback` - The function to call on a later loop around the event loop.\n\n__Example__\n\n```js\nvar call_order = [];\nasync.nextTick(function(){\n    call_order.push('two');\n    // call_order now equals ['one','two']\n});\ncall_order.push('one')\n```\n\n<a name=\"times\" />\n### times(n, iterator, [callback])\n\nCalls the `iterator` function `n` times, and accumulates results in the same manner\nyou would use with [`map`](#map).\n\n__Arguments__\n\n* `n` - The number of times to run the function.\n* `iterator` - The function to call `n` times.\n* `callback` - see [`map`](#map)\n\n__Example__\n\n```js\n// Pretend this is some complicated async factory\nvar createUser = function(id, callback) {\n  callback(null, {\n    id: 'user' + id\n  })\n}\n// generate 5 users\nasync.times(5, function(n, next){\n    createUser(n, function(err, user) {\n      next(err, user)\n    })\n}, function(err, users) {\n  // we should now have 5 users\n});\n```\n\n<a name=\"timesSeries\" />\n### timesSeries(n, iterator, [callback])\n\nThe same as [`times`](#times), only the iterator is applied in series.\nThe next `iterator` is only called once the current one has completed.\nThe results array will be in the same order as the original.\n\n<a name=\"timesLimit\" />\n### timesLimit(n, limit, iterator, [callback])\n\nThe same as [`times`](#times), except a maximum of `limit` iterators are run at a given time, similar to [`mapLimit`](#mapLimit).\n\n\n## Utils\n\n<a name=\"memoize\" />\n### memoize(fn, [hasher])\n\nCaches the results of an `async` function. When creating a hash to store function\nresults against, the callback is omitted from the hash and an optional hash\nfunction can be used.\n\nIf no hash function is specified, the first argument is used as a hash key, which may work reasonably if it is a string or a data type that converts to a distinct string. Note that objects and arrays will not behave reasonably. Neither will cases where the other arguments are significant. In such cases, specify your own hash function.\n\nThe cache of results is exposed as the `memo` property of the function returned\nby `memoize`.\n\n__Arguments__\n\n* `fn` - The function to proxy and cache results from.\n* `hasher` - An optional function for generating a custom hash for storing\n  results. It has all the arguments applied to it apart from the callback, and\n  must be synchronous.\n\n__Example__\n\n```js\nvar slow_fn = function (name, callback) {\n    // do something\n    callback(null, result);\n};\nvar fn = async.memoize(slow_fn);\n\n// fn can now be used as if it were slow_fn\nfn('some name', function () {\n    // callback\n});\n```\n\n<a name=\"unmemoize\" />\n### unmemoize(fn)\n\nUndoes a [`memoize`](#memoize)d function, reverting it to the original, unmemoized\nform. Handy for testing.\n\n__Arguments__\n\n* `fn` - the memoized function\n\n---------------------------------------\n\n<a name=\"ensureAsync\" />\n### ensureAsync(fn)\n\nWrap an async function and ensure it calls its callback on a later tick of the event loop.  If the function already calls its callback on a next tick, no extra deferral is added. This is useful for preventing stack overflows (`RangeError: Maximum call stack size exceeded`) and generally keeping [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony) contained.\n\n__Arguments__\n\n* `fn` - an async function, one that expects a node-style callback as its last argument\n\nReturns a wrapped function with the exact same call signature as the function passed in.\n\n__Example__\n\n```js\nfunction sometimesAsync(arg, callback) {\n  if (cache[arg]) {\n    return callback(null, cache[arg]); // this would be synchronous!!\n  } else {\n    doSomeIO(arg, callback); // this IO would be asynchronous\n  }\n}\n\n// this has a risk of stack overflows if many results are cached in a row\nasync.mapSeries(args, sometimesAsync, done);\n\n// this will defer sometimesAsync's callback if necessary,\n// preventing stack overflows\nasync.mapSeries(args, async.ensureAsync(sometimesAsync), done);\n\n```\n\n---------------------------------------\n\n<a name=\"constant\">\n### constant(values...)\n\nReturns a function that when called, calls-back with the values provided.  Useful as the first function in a `waterfall`, or for plugging values in to `auto`.\n\n__Example__\n\n```js\nasync.waterfall([\n  async.constant(42),\n  function (value, next) {\n    // value === 42\n  },\n  //...\n], callback);\n\nasync.waterfall([\n  async.constant(filename, \"utf8\"),\n  fs.readFile,\n  function (fileData, next) {\n    //...\n  }\n  //...\n], callback);\n\nasync.auto({\n  hostname: async.constant(\"https://server.net/\"),\n  port: findFreePort,\n  launchServer: [\"hostname\", \"port\", function (cb, options) {\n    startServer(options, cb);\n  }],\n  //...\n}, callback);\n\n```\n\n---------------------------------------\n\n<a name=\"asyncify\">\n<a name=\"wrapSync\">\n### asyncify(func)\n\n*Alias: wrapSync*\n\nTake a sync function and make it async, passing its return value to a callback. This is useful for plugging sync functions into a waterfall, series, or other async functions. Any arguments passed to the generated function will be passed to the wrapped function (except for the final callback argument). Errors thrown will be passed to the callback.\n\n__Example__\n\n```js\nasync.waterfall([\n  async.apply(fs.readFile, filename, \"utf8\"),\n  async.asyncify(JSON.parse),\n  function (data, next) {\n    // data is the result of parsing the text.\n    // If there was a parsing error, it would have been caught.\n  }\n], callback)\n```\n\n---------------------------------------\n\n<a name=\"log\" />\n### log(function, arguments)\n\nLogs the result of an `async` function to the `console`. Only works in Node.js or\nin browsers that support `console.log` and `console.error` (such as FF and Chrome).\nIf multiple arguments are returned from the async function, `console.log` is\ncalled on each argument in order.\n\n__Arguments__\n\n* `function` - The function you want to eventually apply all arguments to.\n* `arguments...` - Any number of arguments to apply to the function.\n\n__Example__\n\n```js\nvar hello = function(name, callback){\n    setTimeout(function(){\n        callback(null, 'hello ' + name);\n    }, 1000);\n};\n```\n```js\nnode> async.log(hello, 'world');\n'hello world'\n```\n\n---------------------------------------\n\n<a name=\"dir\" />\n### dir(function, arguments)\n\nLogs the result of an `async` function to the `console` using `console.dir` to\ndisplay the properties of the resulting object. Only works in Node.js or\nin browsers that support `console.dir` and `console.error` (such as FF and Chrome).\nIf multiple arguments are returned from the async function, `console.dir` is\ncalled on each argument in order.\n\n__Arguments__\n\n* `function` - The function you want to eventually apply all arguments to.\n* `arguments...` - Any number of arguments to apply to the function.\n\n__Example__\n\n```js\nvar hello = function(name, callback){\n    setTimeout(function(){\n        callback(null, {hello: name});\n    }, 1000);\n};\n```\n```js\nnode> async.dir(hello, 'world');\n{hello: 'world'}\n```\n\n---------------------------------------\n\n<a name=\"noConflict\" />\n### noConflict()\n\nChanges the value of `async` back to its original value, returning a reference to the\n`async` object.\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/caolan/async/issues"},"homepage":"https://github.com/caolan/async#readme","keywords":["async","callback","utility","module"],"license":"MIT","_attachments":{},"_etag":"\"4L77IB3G4SJ394L9NKAE5R51R\""}
\ No newline at end of file
+{"_id":"async","_rev":"916-815c568e81ad8d921c0578f0b3575952","name":"async","description":"Higher-order functions and common patterns for asynchronous code","dist-tags":{"latest":"1.4.2"},"versions":{"0.1.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.0","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.0","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.0.tgz","shasum":"ab8ece0c40627e4e8f0e09c8fcf7c19ed0c4241c"},"directories":{}},"0.1.1":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.1","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.1","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.1.tgz","shasum":"fb965e70dbea44c8a4b8a948472dee7d27279d5e"},"directories":{}},"0.1.2":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.2","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.2","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.2.tgz","shasum":"be761882a64d3dc81a669f9ee3d5c28497382691"},"directories":{}},"0.1.3":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.3","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.3","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.3.tgz","shasum":"629ca2357112d90cafc33872366b14f2695a1fbc"},"directories":{}},"0.1.4":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.4","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.4","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.4.tgz","shasum":"29de4b98712ab8858411d8d8e3361a986c3b2c18"},"directories":{}},"0.1.5":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.5","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.5","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.5.tgz","shasum":"9d83e3d4adb9c962fc4a30e7dd04bf1206c28ea5"},"directories":{}},"0.1.6":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.6","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.6","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.6.tgz","shasum":"2dfb4fa1915f86056060c2e2f35a7fb8549907cc"},"directories":{}},"0.1.7":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.7","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.7","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.4-1","_nodeVersion":"v0.2.5","dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.7.tgz","shasum":"e9268d0d8cd8dcfe0db0895b27dcc4bcc5c739a5"},"directories":{}},"0.1.8":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.8","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"web":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_id":"async@0.1.8","engines":{"node":"*"},"_nodeSupported":true,"dist":{"tarball":"http://registry.npmjs.org/async/-/async-0.1.8.tgz","shasum":"52f2df6c0aa6a7f8333e1fbac0fbd93670cf6758"},"directories":{}},"0.1.9":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.9","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"dependencies":{},"devDependencies":{},"_id":"async@0.1.9","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.1rc7","_nodeVersion":"v0.4.7","_defaultsLoaded":true,"dist":{"shasum":"f984d0739b5382c949cc3bea702d21d0dbd52040","tarball":"http://registry.npmjs.org/async/-/async-0.1.9.tgz"},"directories":{}},"0.1.10":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.10","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_npmJsonOpts":{"file":"/home/caolan/.npm/async/0.1.10/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"async@0.1.10","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.27","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"12b32bf098fa7fc51ae3ac51441b8ba15f437cf1","tarball":"http://registry.npmjs.org/async/-/async-0.1.10.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.11":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.11","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_npmJsonOpts":{"file":"/home/caolan/.npm/async/0.1.11/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"async@0.1.11","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.27","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"a397a69c6febae232d20a76a5b10d8742e2b8215","tarball":"http://registry.npmjs.org/async/-/async-0.1.11.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.12":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.12","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_npmJsonOpts":{"file":"/home/caolan/.npm/async/0.1.12/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"async@0.1.12","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.27","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"ab36be6611dc63d91657128e1d65102b959d4afe","tarball":"http://registry.npmjs.org/async/-/async-0.1.12.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.13":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.13","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.13","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.101","_nodeVersion":"v0.4.9","_defaultsLoaded":true,"dist":{"shasum":"f1e53ad69dab282d8e75cbec5e2c5524b6195eab","tarball":"http://registry.npmjs.org/async/-/async-0.1.13.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.14":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.14","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.14","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.101","_nodeVersion":"v0.4.9","_defaultsLoaded":true,"dist":{"shasum":"0fcfaf089229fc657798203d1a4544102f7d26dc","tarball":"http://registry.npmjs.org/async/-/async-0.1.14.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.15":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.15","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.15","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.101","_nodeVersion":"v0.4.9","_defaultsLoaded":true,"dist":{"shasum":"2180eaca2cf2a6ca5280d41c0585bec9b3e49bd3","tarball":"http://registry.npmjs.org/async/-/async-0.1.15.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.16":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.16","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.16","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.0-3","_nodeVersion":"v0.6.10","_defaultsLoaded":true,"dist":{"shasum":"b3a61fdc1a9193d4f64755c7600126e254223186","tarball":"http://registry.npmjs.org/async/-/async-0.1.16.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.17":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.17","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"dependencies":{"uglify-js":"1.2.x"},"devDependencies":{"nodeunit":">0.0.0","nodelint":">0.0.0"},"scripts":{"preinstall":"make clean","install":"make build","test":"make test"},"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.17","optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"03524a379e974dc9ee5c811c6ee3815d7bc54f6e","tarball":"http://registry.npmjs.org/async/-/async-0.1.17.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.18":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.18","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.18","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"c59c923920b76d5bf23248c04433920c4d45086a","tarball":"http://registry.npmjs.org/async/-/async-0.1.18.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.19":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.19","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.19","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"4fd6125a70f841fb10b14aeec6e23cf1479c71a7","tarball":"http://registry.npmjs.org/async/-/async-0.1.19.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.20":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.20","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.20","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"ba0e47b08ae972e04b5215de28539b313482ede5","tarball":"http://registry.npmjs.org/async/-/async-0.1.20.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.21":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.21","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.21","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"b5b12e985f09ab72c202fa00f623cd9d997e9464","tarball":"http://registry.npmjs.org/async/-/async-0.1.21.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.1.22":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./index","author":{"name":"Caolan McMahon"},"version":"0.1.22","repository":{"type":"git","url":"git://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"_npmUser":{"name":"caolan","email":"caolan@caolanmcmahon.com"},"_id":"async@0.1.22","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061","tarball":"http://registry.npmjs.org/async/-/async-0.1.22.tgz"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.0","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"_id":"async@0.2.0","dist":{"shasum":"db1c645337bab79d0ca93d95f5c72d9605be0fce","tarball":"http://registry.npmjs.org/async/-/async-0.2.0.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.1":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.1","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"_id":"async@0.2.1","dist":{"shasum":"4e37d08391132f79657a99ca73aa4eb471a6f771","tarball":"http://registry.npmjs.org/async/-/async-0.2.1.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.2":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.2","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"_id":"async@0.2.2","dist":{"shasum":"8414ee47da7548126b4d3d923850d54e68a72b28","tarball":"http://registry.npmjs.org/async/-/async-0.2.2.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.3":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.3","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"_id":"async@0.2.3","dist":{"shasum":"79bf601d723a2e8c3e91cb6bb08f152dca309fb3","tarball":"http://registry.npmjs.org/async/-/async-0.2.3.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.4":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.4","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"_id":"async@0.2.4","dist":{"shasum":"0550e510cf43b83e2fcf1cb96399f03f1efd50eb","tarball":"http://registry.npmjs.org/async/-/async-0.2.4.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.5":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.5","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"_id":"async@0.2.5","dist":{"shasum":"45f05da480749ba4c1dcd8cd3a3747ae7b36fe52","tarball":"http://registry.npmjs.org/async/-/async-0.2.5.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.6":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.6","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"_id":"async@0.2.6","dist":{"shasum":"ad3f373d9249ae324881565582bc90e152abbd68","tarball":"http://registry.npmjs.org/async/-/async-0.2.6.tgz"},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.7":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.7","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"_id":"async@0.2.7","dist":{"shasum":"44c5ee151aece6c4bf5364cfc7c28fe4e58f18df","tarball":"http://registry.npmjs.org/async/-/async-0.2.7.tgz"},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.8":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.8","repository":{"type":"git","url":"http://github.com/caolan/async.git"},"bugs":{"url":"http://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"http://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"_id":"async@0.2.8","dist":{"shasum":"ba1b3ffd1e6cdb1e999aca76ef6ecee8e7f55f53","tarball":"http://registry.npmjs.org/async/-/async-0.2.8.tgz"},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.9":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.9","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"_id":"async@0.2.9","dist":{"shasum":"df63060fbf3d33286a76aaf6d55a2986d9ff8619","tarball":"http://registry.npmjs.org/async/-/async-0.2.9.tgz"},"_from":".","_npmVersion":"1.2.23","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.2.10":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.2.10","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"_id":"async@0.2.10","dist":{"shasum":"b6bbe0b0674b9d719708ca38de8c237cb526c3d1","tarball":"http://registry.npmjs.org/async/-/async-0.2.10.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.3.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.3.0","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.3.0","dist":{"shasum":"6d2c543c25f514c602bb22916ac222a519290d5d","tarball":"http://registry.npmjs.org/async/-/async-0.3.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.4.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.4.0","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.4.0","dist":{"shasum":"208bba02850129dacc2bc3959e4126570ae80b74","tarball":"http://registry.npmjs.org/async/-/async-0.4.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.4.1":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.4.1","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.4.1","dist":{"shasum":"1985abade017df906bfaa8d77d424b25366b3a5b","tarball":"http://registry.npmjs.org/async/-/async-0.4.1.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.5.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.5.0","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.5.0","dist":{"shasum":"524bc1cf3ed2b6adc7f4a8c4987dd9c4809c764f","tarball":"http://registry.npmjs.org/async/-/async-0.5.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.6.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.6.0","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.6.0","dist":{"shasum":"025a31c8b1fb11e7481fa18dbdbc2bf2e434933a","tarball":"http://registry.npmjs.org/async/-/async-0.6.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.6.1":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.6.1","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.6.1","dist":{"shasum":"594fe360968fcdd2d7e0a6d95a874e4e92c7a26d","tarball":"http://registry.npmjs.org/async/-/async-0.6.1.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.6.2":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.6.2","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.6.2","dist":{"shasum":"41fd038a3812c0a8bc1842ecf08ba63eb0392bef","tarball":"http://registry.npmjs.org/async/-/async-0.6.2.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.7.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.7.0","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.7.0","dist":{"shasum":"4429e0e62f5de0a54f37458c49f0b897eb52ada5","tarball":"http://registry.npmjs.org/async/-/async-0.7.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.8.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.8.0","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.8.0","dist":{"shasum":"ee65ec77298c2ff1456bc4418a052d0f06435112","tarball":"http://registry.npmjs.org/async/-/async-0.8.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.9.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"./lib/async","author":{"name":"Caolan McMahon"},"version":"0.9.0","repository":{"type":"git","url":"https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"licenses":[{"type":"MIT","url":"https://github.com/caolan/async/raw/master/LICENSE"}],"devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"]},"scripts":{"test":"nodeunit test/test-async.js"},"homepage":"https://github.com/caolan/async","_id":"async@0.9.0","dist":{"shasum":"ac3613b1da9bed1b47510bb4651b8931e47146c7","tarball":"http://registry.npmjs.org/async/-/async-0.9.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"caolan","email":"caolan.mcmahon@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan@caolanmcmahon.com"}],"directories":{}},"0.9.2":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"0.9.2","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"nodeunit":">0.0.0","uglify-js":"1.2.x","nodelint":">0.0.0","lodash":">=2.4.1"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"test":"nodeunit test/test-async.js"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"de3a16091d5125384eff4a54deb3998b13c3814c","homepage":"https://github.com/caolan/async#readme","_id":"async@0.9.2","_shasum":"aea74d5e61c1f899613bf64bda66d4c78f2fd17d","_from":".","_npmVersion":"2.9.0","_nodeVersion":"2.0.1","_npmUser":{"name":"beaugunderson","email":"beau@beaugunderson.com"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"}],"dist":{"shasum":"aea74d5e61c1f899613bf64bda66d4c78f2fd17d","tarball":"http://registry.npmjs.org/async/-/async-0.9.2.tgz"},"directories":{}},"1.0.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"1.0.0","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"benchmark":"~1.0.0","jshint":"~2.7.0","lodash":">=2.4.1","mkdirp":"~0.5.1","nodeunit":">0.0.0","uglify-js":"1.2.x"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"test":"npm run-script lint && nodeunit test/test-async.js","lint":"jshint lib/*.js test/*.js perf/*.js"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"cfa81645c9cb4011b23d1d1a445ad855762568e0","homepage":"https://github.com/caolan/async#readme","_id":"async@1.0.0","_shasum":"f8fc04ca3a13784ade9e1641af98578cfbd647a9","_from":".","_npmVersion":"2.9.1","_nodeVersion":"0.12.3","_npmUser":{"name":"aearly","email":"alexander.early@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"}],"dist":{"shasum":"f8fc04ca3a13784ade9e1641af98578cfbd647a9","tarball":"http://registry.npmjs.org/async/-/async-1.0.0.tgz"},"directories":{}},"1.1.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"1.1.0","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"benchmark":"github:bestiejs/benchmark.js","coveralls":"^2.11.2","jshint":"~2.7.0","lodash":">=2.4.1","mkdirp":"~0.5.1","nodeunit":">0.0.0","nyc":"^2.1.0","uglify-js":"1.2.x","yargs":"~3.9.1"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"test":"npm run-script lint && nodeunit test/test-async.js","lint":"jshint lib/*.js test/*.js perf/*.js","coverage":"nyc npm test && nyc report","coveralls":"nyc npm test && nyc report --reporter=text-lcov | coveralls"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"88906aa60d407e12185139e86204aa63aa6faf28","homepage":"https://github.com/caolan/async#readme","_id":"async@1.1.0","_shasum":"2b33ea3e87fc0c5ed624f9e31a9c902c022da09b","_from":".","_npmVersion":"2.9.1","_nodeVersion":"0.12.3","_npmUser":{"name":"aearly","email":"alexander.early@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"}],"dist":{"shasum":"2b33ea3e87fc0c5ed624f9e31a9c902c022da09b","tarball":"http://registry.npmjs.org/async/-/async-1.1.0.tgz"},"directories":{}},"1.2.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"1.2.0","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"benchmark":"github:bestiejs/benchmark.js","coveralls":"^2.11.2","jshint":"~2.7.0","lodash":">=2.4.1","mkdirp":"~0.5.1","nodeunit":">0.0.0","nyc":"^2.1.0","uglify-js":"1.2.x","yargs":"~3.9.1"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"test":"npm run-script lint && nodeunit test/test-async.js","lint":"jshint lib/*.js test/*.js perf/*.js","coverage":"nyc npm test && nyc report","coveralls":"nyc npm test && nyc report --reporter=text-lcov | coveralls"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"ff3bd90be6b862a11d0e4a11eb72a6985c26c5af","homepage":"https://github.com/caolan/async#readme","_id":"async@1.2.0","_shasum":"9029580f93d05a7cab24f502c84707ac3ef57b10","_from":".","_npmVersion":"2.9.0","_nodeVersion":"2.0.2","_npmUser":{"name":"aearly","email":"alexander.early@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"}],"dist":{"shasum":"9029580f93d05a7cab24f502c84707ac3ef57b10","tarball":"http://registry.npmjs.org/async/-/async-1.2.0.tgz"},"directories":{}},"1.1.1":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"1.1.1","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"benchmark":"github:bestiejs/benchmark.js","coveralls":"^2.11.2","jshint":"~2.7.0","lodash":">=2.4.1","mkdirp":"~0.5.1","nodeunit":">0.0.0","nyc":"^2.1.0","uglify-js":"1.2.x","yargs":"~3.9.1"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"test":"npm run-script lint && nodeunit test/test-async.js","lint":"jshint lib/*.js test/*.js perf/*.js","coverage":"nyc npm test && nyc report","coveralls":"nyc npm test && nyc report --reporter=text-lcov | coveralls"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"46cbdfd5324be57f15481bee32ad0fda507171b0","homepage":"https://github.com/caolan/async#readme","_id":"async@1.1.1","_shasum":"753cb13df043ff08d810e4418d312d646ee1bbea","_from":".","_npmVersion":"2.9.0","_nodeVersion":"2.0.2","_npmUser":{"name":"aearly","email":"alexander.early@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"}],"dist":{"shasum":"753cb13df043ff08d810e4418d312d646ee1bbea","tarball":"http://registry.npmjs.org/async/-/async-1.1.1.tgz"},"directories":{}},"1.2.1":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"1.2.1","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"benchmark":"github:bestiejs/benchmark.js","coveralls":"^2.11.2","jshint":"~2.7.0","lodash":">=2.4.1","mkdirp":"~0.5.1","nodeunit":">0.0.0","nyc":"^2.1.0","uglify-js":"1.2.x","yargs":"~3.9.1"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"test":"npm run-script lint && nodeunit test/test-async.js","lint":"jshint lib/*.js test/*.js perf/*.js","coverage":"nyc npm test && nyc report","coveralls":"nyc npm test && nyc report --reporter=text-lcov | coveralls"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"b66e85d1cca8c8056313253f22d18f571e7001d2","homepage":"https://github.com/caolan/async#readme","_id":"async@1.2.1","_shasum":"a4816a17cd5ff516dfa2c7698a453369b9790de0","_from":".","_npmVersion":"2.9.0","_nodeVersion":"2.0.2","_npmUser":{"name":"aearly","email":"alexander.early@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"}],"dist":{"shasum":"a4816a17cd5ff516dfa2c7698a453369b9790de0","tarball":"http://registry.npmjs.org/async/-/async-1.2.1.tgz"},"directories":{}},"1.3.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"1.3.0","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"benchmark":"github:bestiejs/benchmark.js","coveralls":"^2.11.2","jshint":"~2.8.0","lodash":"^3.9.0","mkdirp":"~0.5.1","nodeunit":">0.0.0","nyc":"^2.1.0","uglify-js":"~2.4.0","xyz":"^0.5.0","yargs":"~3.9.1"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"test":"npm run-script lint && nodeunit test/test-async.js","lint":"jshint lib/*.js test/*.js perf/*.js","coverage":"nyc npm test && nyc report","coveralls":"nyc npm test && nyc report --reporter=text-lcov | coveralls"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"71fa2638973dafd8761fa5457c472a312cc820fe","homepage":"https://github.com/caolan/async#readme","_id":"async@1.3.0","_shasum":"a6f1631e8a595a663496d0a5586bd12007d4871d","_from":".","_npmVersion":"2.9.1","_nodeVersion":"0.12.3","_npmUser":{"name":"aearly","email":"alexander.early@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"}],"dist":{"shasum":"a6f1631e8a595a663496d0a5586bd12007d4871d","tarball":"http://registry.npmjs.org/async/-/async-1.3.0.tgz"},"directories":{}},"1.4.0":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"1.4.0","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"benchmark":"github:bestiejs/benchmark.js","bluebird":"^2.9.32","coveralls":"^2.11.2","es6-promise":"^2.3.0","jscs":"^1.13.1","jshint":"~2.8.0","lodash":"^3.9.0","mkdirp":"~0.5.1","native-promise-only":"^0.8.0-a","nodeunit":">0.0.0","nyc":"^2.1.0","rsvp":"^3.0.18","uglify-js":"~2.4.0","xyz":"^0.5.0","yargs":"~3.9.1"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"test":"npm run-script lint && nodeunit test/test-async.js","lint":"jshint lib/*.js test/*.js perf/*.js && jscs lib/*.js test/*.js perf/*.js","coverage":"nyc npm test && nyc report","coveralls":"nyc npm test && nyc report --reporter=text-lcov | coveralls"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"5bfcd31c72e003f96df025e75753463da61f49f9","homepage":"https://github.com/caolan/async#readme","_id":"async@1.4.0","_shasum":"35f86f83c59e0421d099cd9a91d8278fb578c00d","_from":".","_npmVersion":"2.13.0","_nodeVersion":"2.4.0","_npmUser":{"name":"megawac","email":"megawac@gmail.com"},"dist":{"shasum":"35f86f83c59e0421d099cd9a91d8278fb578c00d","tarball":"http://registry.npmjs.org/async/-/async-1.4.0.tgz"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"},{"name":"megawac","email":"megawac@gmail.com"}],"directories":{}},"1.4.1":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","author":{"name":"Caolan McMahon"},"version":"1.4.1","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"benchmark":"github:bestiejs/benchmark.js","bluebird":"^2.9.32","chai":"^3.1.0","coveralls":"^2.11.2","es6-promise":"^2.3.0","jscs":"^1.13.1","jshint":"~2.8.0","karma":"^0.13.2","karma-browserify":"^4.2.1","karma-firefox-launcher":"^0.1.6","karma-mocha":"^0.2.0","karma-mocha-reporter":"^1.0.2","lodash":"^3.9.0","mkdirp":"~0.5.1","mocha":"^2.2.5","native-promise-only":"^0.8.0-a","nodeunit":">0.0.0","nyc":"^2.1.0","rsvp":"^3.0.18","uglify-js":"~2.4.0","xyz":"^0.5.0","yargs":"~3.9.1"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"mocha-node-test":"mocha mocha_test/","mocha-browser-test":"karma start","mocha-test":"npm run mocha-node-test && npm run mocha-browser-test","nodeunit-test":"nodeunit test/test-async.js","test":"npm run-script lint && npm run nodeunit-test && npm run mocha-test","lint":"jshint lib/*.js test/*.js perf/*.js && jscs lib/*.js test/*.js perf/*.js","coverage":"nyc npm test && nyc report","coveralls":"nyc npm test && nyc report --reporter=text-lcov | coveralls"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"2daeb2cc898ca71d70fd664d0c1ef1dd1663325c","homepage":"https://github.com/caolan/async#readme","_id":"async@1.4.1","_shasum":"1bc4895271551e524fd7fb338ddebad1a1440b74","_from":".","_npmVersion":"2.10.1","_nodeVersion":"0.12.4","_npmUser":{"name":"aearly","email":"alexander.early@gmail.com"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"},{"name":"megawac","email":"megawac@gmail.com"}],"dist":{"shasum":"1bc4895271551e524fd7fb338ddebad1a1440b74","tarball":"http://registry.npmjs.org/async/-/async-1.4.1.tgz"},"directories":{}},"1.4.2":{"name":"async","description":"Higher-order functions and common patterns for asynchronous code","main":"lib/async.js","files":["lib"],"author":{"name":"Caolan McMahon"},"version":"1.4.2","keywords":["async","callback","utility","module"],"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"bugs":{"url":"https://github.com/caolan/async/issues"},"license":"MIT","devDependencies":{"benchmark":"github:bestiejs/benchmark.js","bluebird":"^2.9.32","chai":"^3.1.0","coveralls":"^2.11.2","es6-promise":"^2.3.0","jscs":"^1.13.1","jshint":"~2.8.0","karma":"^0.13.2","karma-browserify":"^4.2.1","karma-firefox-launcher":"^0.1.6","karma-mocha":"^0.2.0","karma-mocha-reporter":"^1.0.2","lodash":"^3.9.0","mkdirp":"~0.5.1","mocha":"^2.2.5","native-promise-only":"^0.8.0-a","nodeunit":">0.0.0","nyc":"^2.1.0","rsvp":"^3.0.18","uglify-js":"~2.4.0","xyz":"^0.5.0","yargs":"~3.9.1"},"jam":{"main":"lib/async.js","include":["lib/async.js","README.md","LICENSE"],"categories":["Utilities"]},"scripts":{"mocha-node-test":"mocha mocha_test/","mocha-browser-test":"karma start","mocha-test":"npm run mocha-node-test && npm run mocha-browser-test","nodeunit-test":"nodeunit test/test-async.js","test":"npm run-script lint && npm run nodeunit-test && npm run mocha-test","lint":"jshint lib/*.js test/*.js perf/*.js && jscs lib/*.js test/*.js perf/*.js","coverage":"nyc npm test && nyc report","coveralls":"nyc npm test && nyc report --reporter=text-lcov | coveralls"},"spm":{"main":"lib/async.js"},"volo":{"main":"lib/async.js","ignore":["**/.*","node_modules","bower_components","test","tests"]},"gitHead":"92f78aebad222d60c13e4299c0e723f2fe2d6611","homepage":"https://github.com/caolan/async#readme","_id":"async@1.4.2","_shasum":"6c9edcb11ced4f0dd2f2d40db0d49a109c088aab","_from":".","_npmVersion":"2.9.0","_nodeVersion":"2.0.1","_npmUser":{"name":"megawac","email":"megawac@gmail.com"},"dist":{"shasum":"6c9edcb11ced4f0dd2f2d40db0d49a109c088aab","tarball":"http://registry.npmjs.org/async/-/async-1.4.2.tgz"},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"},{"name":"megawac","email":"megawac@gmail.com"}],"directories":{}}},"maintainers":[{"name":"caolan","email":"caolan.mcmahon@gmail.com"},{"name":"beaugunderson","email":"beau@beaugunderson.com"},{"name":"aearly","email":"alexander.early@gmail.com"},{"name":"megawac","email":"megawac@gmail.com"}],"author":{"name":"Caolan McMahon"},"repository":{"type":"git","url":"git+https://github.com/caolan/async.git"},"time":{"modified":"2015-08-09T18:10:22.399Z","created":"2010-12-19T16:41:51.765Z","0.1.0":"2010-12-19T16:41:51.765Z","0.1.1":"2010-12-19T16:41:51.765Z","0.1.2":"2010-12-19T16:41:51.765Z","0.1.3":"2010-12-19T16:41:51.765Z","0.1.4":"2010-12-19T16:41:51.765Z","0.1.5":"2010-12-19T16:41:51.765Z","0.1.6":"2010-12-19T16:41:51.765Z","0.1.7":"2010-12-19T16:41:51.765Z","0.1.8":"2011-01-18T09:56:53.975Z","0.1.9":"2011-04-27T20:48:08.634Z","0.1.10":"2011-09-19T04:40:01.573Z","0.1.11":"2011-10-14T17:07:28.752Z","0.1.12":"2011-10-14T17:19:19.452Z","0.1.13":"2011-10-29T22:33:52.448Z","0.1.14":"2011-10-29T22:40:14.486Z","0.1.15":"2011-11-01T23:05:01.415Z","0.1.16":"2012-02-13T04:56:23.926Z","0.1.17":"2012-02-27T02:40:58.997Z","0.1.18":"2012-02-27T16:51:02.109Z","0.1.19":"2012-05-24T06:51:06.109Z","0.1.20":"2012-05-24T06:53:39.997Z","0.1.21":"2012-05-24T07:16:16.753Z","0.1.22":"2012-05-30T18:26:44.821Z","0.1.23":"2012-10-04T13:52:08.947Z","0.2.0":"2013-02-04T11:38:08.943Z","0.2.1":"2013-02-04T11:52:34.110Z","0.2.2":"2013-02-05T15:55:23.202Z","0.2.3":"2013-02-06T12:48:37.415Z","0.2.4":"2013-02-07T17:26:22.236Z","0.2.5":"2013-02-10T22:42:00.162Z","0.2.6":"2013-03-03T11:29:52.674Z","0.2.7":"2013-04-09T20:50:04.712Z","0.2.8":"2013-05-01T10:04:07.430Z","0.2.9":"2013-05-28T07:50:48.795Z","0.2.10":"2014-01-23T16:23:57.271Z","0.3.0":"2014-03-28T17:16:05.640Z","0.4.0":"2014-03-28T17:25:12.580Z","0.4.1":"2014-03-30T11:42:54.298Z","0.5.0":"2014-03-30T11:46:31.381Z","0.6.0":"2014-03-30T12:04:32.275Z","0.6.1":"2014-03-30T20:35:32.550Z","0.6.2":"2014-03-31T09:56:20.294Z","0.7.0":"2014-04-07T09:07:34.303Z","0.8.0":"2014-04-29T15:26:34.028Z","0.9.0":"2014-05-16T10:20:22.247Z","0.9.2":"2015-05-19T08:45:57.198Z","1.0.0":"2015-05-20T23:40:05.710Z","1.1.0":"2015-06-01T07:59:05.989Z","1.2.0":"2015-06-02T20:56:04.526Z","1.1.1":"2015-06-08T01:26:56.285Z","1.2.1":"2015-06-08T01:43:33.907Z","1.3.0":"2015-06-29T16:14:01.899Z","1.4.0":"2015-07-20T02:11:50.089Z","1.4.1":"2015-08-07T21:08:08.172Z","1.4.2":"2015-08-09T18:10:22.399Z"},"users":{"thejh":true,"avianflu":true,"ragingwind":true,"mvolkmann":true,"mikl":true,"linus":true,"pvorb":true,"dodo":true,"danielr":true,"suor":true,"dolphin278":true,"kurijov":true,"langpavel":true,"alexindigo":true,"fgribreau":true,"hughsk":true,"pid":true,"tylerstalder":true,"gillesruppert":true,"coiscir":true,"xenomuta":true,"jgoodall":true,"jswartwood":true,"drudge":true,"cpsubrian":true,"joeferner":true,"bencevans":true,"Scryptonite":true,"damonoehlman":true,"glukki":true,"tivac":true,"shama":true,"gimenete":true,"bryanburgers":true,"hij1nx":true,"sandeepmistry":true,"minddiaper":true,"fiws":true,"ljharb":true,"popeindustries":true,"dbrockman":true,"eknkc":true,"booyaa":true,"afc163":true,"maxmaximov":true,"meryn":true,"hfcorriez":true,"hyqhyq_3":true,"zonetti":true,"cmilhench":true,"cparker15":true,"jfromaniello":true,"ExxKA":true,"devoidfury":true,"cedrickchee":true,"niftymonkey":true,"paulj":true,"leesei":true,"jamesmgreene":true,"igorissen":true,"zaphod1984":true,"moonpyk":true,"joliva":true,"netroy":true,"chrisweb":true,"cuprobot":true,"tmaximini":true,"lupomontero":true,"john.pinch":true,"everywhere.js":true,"frankblizzard":true,"alanshaw":true,"forivall":true,"kubakubula":true,"doliveira":true,"dstokes":true,"pana":true,"irae":true,"mhaidarh":true,"feross":true,"tetsu3a":true,"qubyte":true,"darosh":true,"pragmadash":true,"denisix":true,"samuelrn":true,"tigefa":true,"tcrowe":true,"tpwk":true,"eins78":true,"sierrasoftworks":true,"yoavf":true,"irakli":true,"hypergeometric":true,"gammasoft":true,"youxiachai":true,"kahboom":true,"elisee":true,"soroush":true,"thomas-so":true,"shenaor":true,"paulomcnally":true,"timur.shemsedinov":true,"slianfeng":true,"ettalea":true,"mananvaghasiya":true,"daniel7912":true,"themiddleman":true,"jacques":true,"kerimdzhanov":true,"jorgemsrs":true,"ivandimanov":true,"vegera":true,"aselzer":true,"kentcdodds":true,"putaoshu":true,"cilindrox":true,"bezoerb":true,"leodutra":true,"mpcref":true,"green_goo":true,"crimeminister":true,"rrobayna":true,"tengisb":true,"johannestegner":true,"iisii":true,"nate-wilkins":true,"hankeypancake":true,"sironfoot":true,"seldo":true,"skipzero":true,"owenlancaster":true,"esundahl":true,"zeusdeux":true,"ajduke":true,"darryl.west":true,"noder":true,"projectweekend":true,"alejonext":true,"evkline":true,"horaci":true,"h2non":true,"tarcio":true,"lucasbrigida":true,"roboterhund87":true,"nbu":true,"biggora":true,"junajan":true,"huoshaolin":true,"netzzwerg":true,"fmm":true,"redbe4rd":true,"codeshrew":true,"stonestyle":true,"caligone":true,"nswbmw":true,"landau":true,"progmer":true,"lucasjans":true,"gabeio":true,"beyoung":true,"davidhalldor":true,"cwonrails":true,"cocopas":true,"jayharris":true,"rckbt":true,"hut":true,"lobodpav":true,"alinex":true,"morishitter":true,"joost":true,"mmierswa":true,"skilbjo":true,"topcloud":true,"imzack":true,"runningtalus":true,"toogle":true,"gyoridavid":true,"humantriangle":true,"pospi":true,"sampsa":true,"z3a":true,"andre_de_souza":true,"wayneashleyberry":true,"vitaliks":true,"mikend":true,"gmturbo":true,"juriwiens":true,"ksnieck":true,"brentonhouse":true,"axelav":true,"jbdoumenjou":true,"shen-weizhong":true,"tmn":true,"gaborsar":true,"nromano":true,"chaowi":true,"jaredvogt":true,"timsmiths":true,"zckrs":true,"agent_9191":true,"djbrandl":true,"edalorzo":true,"jakub.knejzlik":true,"robertwarrengilmore":true,"trylobot":true,"oroce":true,"nak2k":true,"piron_t":true,"bmpvieira":true,"joshmu":true,"davidrlee":true,"adityabakle":true,"wilbeibi":true,"ramanshalupau":true,"dizlexik":true,"cbarrick":true,"janez89":true,"frk1705":true,"travelingtechguy":true,"thitinun":true,"shatting":true,"pilsy":true,"quadroid":true,"fanchangyong":true,"tchey":true,"arrc":true,"h02e56":true,"strangemother":true,"tmypawa":true,"ioncreature":true,"japh":true,"tonijz":true,"syzer":true,"nodecode":true,"dercoder":true,"leighakin":true,"matteospampani":true,"redmed":true,"s-konrad":true,"boustanihani":true,"ricardofbarros":true,"ryanthejuggler":true,"mswanson1524":true,"alnafie":true,"truongpv":true,"tjwebb":true,"daviddias":true,"nbarr":true,"ajohnstone":true,"atd":true,"tommyjs7":true,"omardelarosa":true,"rifaqat":true,"tsangint":true,"cortys":true,"mbildner":true,"yourhoneysky":true,"fill":true,"dennisgnl":true,"fampinheiro":true,"anilcs0405":true,"mathiasm":true,"benpptung":true,"thebearingedge":true,"leon.domingo":true,"hemphillcc":true,"jits":true,"tcauduro":true,"gorbiz":true,"guumaster":true,"brandonb927":true,"nornalbion":true,"loselovegirl":true,"lucag":true,"dilterporto":true,"wilk":true,"karmadude":true,"henryfour":true,"iaincollins":true,"louxiaojian":true,"jotadeveloper":true,"cyberien":true,"atheken":true,"lebowitz":true,"orion-":true,"thebespokepixel":true,"hecto932":true,"denmerc":true,"rpgreen":true,"colwob":true,"shieldax":true,"8bitalex":true,"memoramirez":true,"liushuping":true,"ciroque":true,"jugyo":true,"mjurincic":true,"flaviodelbianco":true,"thealphanerd":true,"samanthagmccormick":true,"trycatch9264":true,"tomi77":true,"lezuse":true,"oncletom":true,"kewin":true,"l0n9h02n":true,"sasquatch":true,"manny":true,"wxnet":true,"ruffle1986":true,"danestuckel":true,"krisbarrett":true,"tur-nr":true,"danielhuisman":true,"byossarian":true,"joshwyatt":true,"lellansin":true,"evandrix":true,"gautam.mehra762":true,"dominik.palo":true,"dgarlitt":true,"woverton":true,"legacy":true,"paulpdaniels":true,"congcong":true,"trusktr":true,"jcreigno":true,"jsolis":true,"avinashkoyyana":true,"nfd":true,"yvesm":true,"yoavniran":true,"silentcloud":true,"ivangaravito":true,"otrlennon":true,"terkelg":true,"jgubo":true,"jshkurti":true,"ryanj":true,"pensierinmusica":true,"mihaiv":true,"swak":true,"cath":true,"gdbtek":true,"adomvris":true,"hash-bang":true,"dearyhud":true,"themanspeaker":true,"shahzaib":true,"yerke":true,"gigerlin":true,"mastayoda":true,"cgfeel":true,"ashkyd":true,"schroeterm":true,"kasperstuck":true,"thorsson":true,"raksa":true,"patrick":true,"genediazjr":true,"hollobit":true,"rgraves90":true,"yeahoffline":true,"kenjisan4u":true,"tgohn":true,"tedyhy":true,"frakti":true,"minichiello":true,"johnnyeven":true,"tomas-sereikis":true,"fyockm":true,"dormi330":true,"eterna2":true,"cdubois":true,"mnemr":true,"yvanscher":true,"thomask33":true,"chehow":true,"chzhewl":true,"jezzalaycock":true,"pumych":true,"marsup":true,"javimaravillas":true,"sushant711":true,"robftw":true,"elliotchong":true,"f124275809":true,"wangnan0610":true,"lazycoder":true,"chrisayn":true,"uniquerockrz":true,"r3nya":true,"cellule":true,"leonning":true,"meme":true,"adamk":true,"salvatorelab":true,"kerry95":true,"stuligan":true,"dlpowless":true,"goblindegook":true,"davidcz":true,"nachbar90":true,"haeck":true,"pnevares":true,"markthethomas":true,"kikar":true,"blakedietz":true,"drdanryan":true,"saidgeek":true,"melvingruesbeck":true,"atonb117":true,"theodor.lindekaer":true,"vchouhan":true,"kulakowka":true,"schnarald":true,"samhwang1990":true,"lyaotian":true,"joeyblue":true,"kbeaulieu":true,"igorkirey":true,"sahilsk":true,"manxisuo":true,"mnlfischer":true,"dmitrymatveev":true,"alejcerro":true,"goodseller":true,"samhou1988":true,"tophsic":true,"docksteaderluke":true,"harutlc":true,"vboctor":true,"alexey_detr":true,"marianboda":true,"jerome.d.russ":true,"warapitiya":true,"snehlsen":true,"techmatt101":true,"nicolasmccurdy":true,"koulmomo":true,"d4nyll":true,"huarse":true,"savostin":true,"nadimix":true,"leodido":true,"tomjamescn":true,"anhulife":true,"jmm23":true,"jklassen":true,"airswoop1":true,"derickchou0129":true,"subchen":true,"simplyianm":true,"pengzhisun":true,"nickeljew":true,"dongxu":true,"risyasin":true,"brandonpapworth":true,"denistrofimov":true,"sc7639":true,"rbartoli":true,"shaneli":true,"rodrigo-medeiros":true,"swarnendu-dutta":true,"jmshahen":true,"junjiansyu":true,"itonyyo":true,"trotyl":true,"icirellik":true,"paeblits":true,"logeshpaul":true,"elgubenis":true,"alexkval":true,"aesinv":true,"arnold-almeida":true,"bruce313":true,"rcastro":true,"godion":true,"skozz":true,"zemgalis":true,"justintormey":true,"tonydieu":true,"gejiawen":true,"yvesroos":true,"yjsosa":true,"fabioelizandro":true,"tfentonz":true,"dac2205":true,"octoo":true,"tmcguire":true,"sbrajesh":true,"staraple":true,"micahjonas":true,"j3kz":true,"modao":true,"iamwiz":true,"joemdavis":true,"jasoncmcg":true,"richarddavenport":true,"xavierharrell":true,"chriscalo":true,"arunvsuresh":true,"dolymood":true,"allthingssmitty":true,"brandondoran":true,"jonatasnona":true,"tudou":true,"nwinant":true,"khaledkaram":true,"garek":true,"etsit":true,"l3au":true,"ezcabrera":true,"johnny.young":true,"subso":true,"rogier.spieker":true,"rgbz":true,"plitat":true,"favasconcelos":true,"buzuli":true,"nukisman":true,"battlemidget":true,"brandouellette":true,"till":true,"craneleeon":true,"rbecheras":true,"nikitka_m":true,"thepanuto":true,"justinshea":true,"luuhoangnam":true,"jasonlotito":true,"aclark64":true,"scottkay":true,"pigram":true,"kanongil":true,"vladan":true,"universemaster":true,"nanhualyq":true,"unboundev":true,"josuehenry14":true,"mjwilliams":true,"cestrensem":true,"zhen":true,"ddffx":true,"prabhash1785":true,"gaboesquivel":true,"bpatel":true,"davidchubbs":true,"adamkdean":true,"parkerproject":true,"confkit":true,"amoiseev":true,"buzzalderaan":true,"damianof":true,"ocd_lionel":true,"tylersmith.34":true,"princetoad":true,"tnagengast":true,"devmoreno":true,"karlbateman":true,"fvcproductions":true,"joshua.marquez":true,"freshlogic":true,"andrewpmckenzie":true,"jueb":true,"perrywu":true,"m412c0":true,"xav":true,"axfab":true,"mariod3w":true,"yogapan":true,"curcuz":true,"cypark":true,"rreusser":true,"asawq2006":true,"2dxgujun":true,"isik":true,"freesuraj":true,"pjb3":true,"mdrobny":true,"moimikey":true,"jeffb_incontact":true,"aitorllj93":true,"tchcxp":true,"aolu11":true,"koslun":true,"eagerod":true,"qqqppp9998":true,"keithmorris":true,"maninbucket":true,"soluzionisubito":true,"yconoclast":true,"zhoutk":true,"drspaceman":true,"monkeymonk":true,"fridurmus":true,"0x4c3p":true,"miql":true,"endquote":true,"nketchum":true,"knownasilya":true,"chinaqstar":true,"matiasmarani":true,"ibakaidov":true,"nickeltobias":true,"decoda":true,"starknode":true,"matthewbauer":true,"arnoldstoba":true,"xucl":true,"acollins-ts":true,"ffmad":true,"romelperez":true,"maxisam":true,"mamalat":true,"tommyzzm":true,"ssh0702":true,"jozias":true,"pdedkov":true,"jalcine":true,"shakakira":true,"wfcookie":true,"arulkumar":true,"nicholaslp":true,"cliff":true,"vqoph":true,"chriskinsman":true,"karlbright":true,"s9k":true,"inn0vative1":true,"makay":true,"philipjc":true,"jerkovicl":true,"blackwhite":true,"joelwallis":true,"markstos":true,"panlw":true,"eagleeye":true,"deryk":true,"abdihaikal":true,"sammyteahan":true,"linuxwizard":true,"wkaifang":true,"zoser":true,"xgqfrms":true,"jkrenge":true,"srinivas543":true,"csbun":true,"iolo":true,"naohta":true,"alectic":true,"liushoukai":true,"mikemimik":true,"xeoneux":true,"aslezak":true},"readme":"# Async.js\n\n[![Build Status via Travis CI](https://travis-ci.org/caolan/async.svg?branch=master)](https://travis-ci.org/caolan/async)\n[![NPM version](http://img.shields.io/npm/v/async.svg)](https://www.npmjs.org/package/async)\n[![Coverage Status](https://coveralls.io/repos/caolan/async/badge.svg?branch=master)](https://coveralls.io/r/caolan/async?branch=master)\n[![Join the chat at https://gitter.im/caolan/async](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/caolan/async?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n\nAsync is a utility module which provides straight-forward, powerful functions\nfor working with asynchronous JavaScript. Although originally designed for\nuse with [Node.js](http://nodejs.org) and installable via `npm install async`,\nit can also be used directly in the browser.\n\nAsync is also installable via:\n\n- [bower](http://bower.io/): `bower install async`\n- [component](https://github.com/component/component): `component install\n  caolan/async`\n- [jam](http://jamjs.org/): `jam install async`\n- [spm](http://spmjs.io/): `spm install async`\n\nAsync provides around 20 functions that include the usual 'functional'\nsuspects (`map`, `reduce`, `filter`, `each`…) as well as some common patterns\nfor asynchronous control flow (`parallel`, `series`, `waterfall`…). All these\nfunctions assume you follow the Node.js convention of providing a single\ncallback as the last argument of your `async` function.\n\n\n## Quick Examples\n\n```javascript\nasync.map(['file1','file2','file3'], fs.stat, function(err, results){\n    // results is now an array of stats for each file\n});\n\nasync.filter(['file1','file2','file3'], fs.exists, function(results){\n    // results now equals an array of the existing files\n});\n\nasync.parallel([\n    function(){ ... },\n    function(){ ... }\n], callback);\n\nasync.series([\n    function(){ ... },\n    function(){ ... }\n]);\n```\n\nThere are many more functions available so take a look at the docs below for a\nfull list. This module aims to be comprehensive, so if you feel anything is\nmissing please create a GitHub issue for it.\n\n## Common Pitfalls <sub>[(StackOverflow)](http://stackoverflow.com/questions/tagged/async.js)</sub>\n### Synchronous iteration functions\n\nIf you get an error like `RangeError: Maximum call stack size exceeded.` or other stack overflow issues when using async, you are likely using a synchronous iterator.  By *synchronous* we mean a function that calls its callback on the same tick in the javascript event loop, without doing any I/O or using any timers.  Calling many callbacks iteratively will quickly overflow the stack. If you run into this issue, just defer your callback with `async.nextTick` to start a new call stack on the next tick of the event loop.\n\nThis can also arise by accident if you callback early in certain cases:\n\n```js\nasync.eachSeries(hugeArray, function iterator(item, callback) {\n  if (inCache(item)) {\n    callback(null, cache[item]); // if many items are cached, you'll overflow\n  } else {\n    doSomeIO(item, callback);\n  }\n}, function done() {\n  //...\n});\n```\n\nJust change it to:\n\n```js\nasync.eachSeries(hugeArray, function iterator(item, callback) {\n  if (inCache(item)) {\n    async.setImmediate(function () {\n      callback(null, cache[item]);\n    });\n  } else {\n    doSomeIO(item, callback);\n  //...\n```\n\nAsync guards against synchronous functions in some, but not all, cases.  If you are still running into stack overflows, you can defer as suggested above, or wrap functions with [`async.ensureAsync`](#ensureAsync)  Functions that are asynchronous by their nature do not have this problem and don't need the extra callback deferral.\n\nIf javascript's event loop is still a bit nebulous, check out [this article](http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/) or [this talk](http://2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the-event-loop-anyway.html) for more detailed information about how it works.\n\n\n### Multiple callbacks\n\nMake sure to always `return` when calling a callback early, otherwise you will cause multiple callbacks and unpredictable behavior in many cases.\n\n```js\nasync.waterfall([\n    function (callback) {\n        getSomething(options, function (err, result) {\n          if (err) {\n            callback(new Error(\"failed getting something:\" + err.message));\n            // we should return here\n          }\n          // since we did not return, this callback still will be called and\n          // `processData` will be called twice\n          callback(result);\n        });\n    },\n    processData\n], done)\n```\n\nIt is always good practice to `return callback(err, result)`  whenever a callback call is not the last statement of a function.\n\n\n### Binding a context to an iterator\n\nThis section is really about `bind`, not about `async`. If you are wondering how to\nmake `async` execute your iterators in a given context, or are confused as to why\na method of another library isn't working as an iterator, study this example:\n\n```js\n// Here is a simple object with an (unnecessarily roundabout) squaring method\nvar AsyncSquaringLibrary = {\n  squareExponent: 2,\n  square: function(number, callback){\n    var result = Math.pow(number, this.squareExponent);\n    setTimeout(function(){\n      callback(null, result);\n    }, 200);\n  }\n};\n\nasync.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){\n  // result is [NaN, NaN, NaN]\n  // This fails because the `this.squareExponent` expression in the square\n  // function is not evaluated in the context of AsyncSquaringLibrary, and is\n  // therefore undefined.\n});\n\nasync.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){\n  // result is [1, 4, 9]\n  // With the help of bind we can attach a context to the iterator before\n  // passing it to async. Now the square function will be executed in its\n  // 'home' AsyncSquaringLibrary context and the value of `this.squareExponent`\n  // will be as expected.\n});\n```\n\n## Download\n\nThe source is available for download from\n[GitHub](https://github.com/caolan/async/blob/master/lib/async.js).\nAlternatively, you can install using Node Package Manager (`npm`):\n\n    npm install async\n\nAs well as using Bower:\n\n    bower install async\n\n__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed\n\n## In the Browser\n\nSo far it's been tested in IE6, IE7, IE8, FF3.6 and Chrome 5.\n\nUsage:\n\n```html\n<script type=\"text/javascript\" src=\"async.js\"></script>\n<script type=\"text/javascript\">\n\n    async.map(data, asyncProcess, function(err, results){\n        alert(results);\n    });\n\n</script>\n```\n\n## Documentation\n\nSome functions are also available in the following forms:\n* `<name>Series` - the same as `<name>` but runs only a single async operation at a time\n* `<name>Limit` - the same as `<name>` but runs a maximum of `limit` async operations at a time\n\n### Collections\n\n* [`each`](#each), `eachSeries`, `eachLimit`\n* [`forEachOf`](#forEachOf), `forEachOfSeries`, `forEachOfLimit`\n* [`map`](#map), `mapSeries`, `mapLimit`\n* [`filter`](#filter), `filterSeries`, `filterLimit`\n* [`reject`](#reject), `rejectSeries`, `rejectLimit`\n* [`reduce`](#reduce), [`reduceRight`](#reduceRight)\n* [`detect`](#detect), `detectSeries`, `detectLimit`\n* [`sortBy`](#sortBy)\n* [`some`](#some), `someLimit`\n* [`every`](#every), `everyLimit`\n* [`concat`](#concat), `concatSeries`\n\n### Control Flow\n\n* [`series`](#seriestasks-callback)\n* [`parallel`](#parallel), `parallelLimit`\n* [`whilst`](#whilst), [`doWhilst`](#doWhilst)\n* [`until`](#until), [`doUntil`](#doUntil)\n* [`during`](#during), [`doDuring`](#doDuring)\n* [`forever`](#forever)\n* [`waterfall`](#waterfall)\n* [`compose`](#compose)\n* [`seq`](#seq)\n* [`applyEach`](#applyEach), `applyEachSeries`\n* [`queue`](#queue), [`priorityQueue`](#priorityQueue)\n* [`cargo`](#cargo)\n* [`auto`](#auto)\n* [`retry`](#retry)\n* [`iterator`](#iterator)\n* [`times`](#times), `timesSeries`, `timesLimit`\n\n### Utils\n\n* [`apply`](#apply)\n* [`nextTick`](#nextTick)\n* [`memoize`](#memoize)\n* [`unmemoize`](#unmemoize)\n* [`ensureAsync`](#ensureAsync)\n* [`constant`](#constant)\n* [`asyncify`](#asyncify)\n* [`wrapSync`](#wrapSync)\n* [`log`](#log)\n* [`dir`](#dir)\n* [`noConflict`](#noConflict)\n\n## Collections\n\n<a name=\"forEach\" />\n<a name=\"each\" />\n### each(arr, iterator, [callback])\n\nApplies the function `iterator` to each item in `arr`, in parallel.\nThe `iterator` is called with an item from the list, and a callback for when it\nhas finished. If the `iterator` passes an error to its `callback`, the main\n`callback` (for the `each` function) is immediately called with the error.\n\nNote, that since this function applies `iterator` to each item in parallel,\nthere is no guarantee that the iterator functions will complete in order.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n  The iterator is passed a `callback(err)` which must be called once it has\n  completed. If no error has occurred, the `callback` should be run without\n  arguments or with an explicit `null` argument.  The array index is not passed\n  to the iterator.  If you need the index, use [`forEachOf`](#forEachOf).\n* `callback(err)` - *Optional* A callback which is called when all `iterator` functions\n  have finished, or an error occurs.\n\n__Examples__\n\n\n```js\n// assuming openFiles is an array of file names and saveFile is a function\n// to save the modified contents of that file:\n\nasync.each(openFiles, saveFile, function(err){\n    // if any of the saves produced an error, err would equal that error\n});\n```\n\n```js\n// assuming openFiles is an array of file names\n\nasync.each(openFiles, function(file, callback) {\n\n  // Perform operation on file here.\n  console.log('Processing file ' + file);\n\n  if( file.length > 32 ) {\n    console.log('This file name is too long');\n    callback('File name too long');\n  } else {\n    // Do work to process file here\n    console.log('File processed');\n    callback();\n  }\n}, function(err){\n    // if any of the file processing produced an error, err would equal that error\n    if( err ) {\n      // One of the iterations produced an error.\n      // All processing will now stop.\n      console.log('A file failed to process');\n    } else {\n      console.log('All files have been processed successfully');\n    }\n});\n```\n\n__Related__\n\n* eachSeries(arr, iterator, [callback])\n* eachLimit(arr, limit, iterator, [callback])\n\n---------------------------------------\n\n<a name=\"forEachOf\" />\n<a name=\"eachOf\" />\n\n### forEachOf(obj, iterator, [callback])\n\nLike `each`, except that it iterates over objects, and passes the key as the second argument to the iterator.\n\n__Arguments__\n\n* `obj` - An object or array to iterate over.\n* `iterator(item, key, callback)` - A function to apply to each item in `obj`.\nThe `key` is the item's key, or index in the case of an array. The iterator is\npassed a `callback(err)` which must be called once it has completed. If no\nerror has occurred, the callback should be run without arguments or with an\nexplicit `null` argument.\n* `callback(err)` - *Optional* A callback which is called when all `iterator` functions have finished, or an error occurs.\n\n__Example__\n\n```js\nvar obj = {dev: \"/dev.json\", test: \"/test.json\", prod: \"/prod.json\"};\nvar configs = {};\n\nasync.forEachOf(obj, function (value, key, callback) {\n  fs.readFile(__dirname + value, \"utf8\", function (err, data) {\n    if (err) return callback(err);\n    try {\n      configs[key] = JSON.parse(data);\n    } catch (e) {\n      return callback(e);\n    }\n    callback();\n  })\n}, function (err) {\n  if (err) console.error(err.message);\n  // configs is now a map of JSON data\n  doSomethingWith(configs);\n})\n```\n\n__Related__\n\n* forEachOfSeries(obj, iterator, [callback])\n* forEachOfLimit(obj, limit, iterator, [callback])\n\n---------------------------------------\n\n<a name=\"map\" />\n### map(arr, iterator, [callback])\n\nProduces a new array of values by mapping each value in `arr` through\nthe `iterator` function. The `iterator` is called with an item from `arr` and a\ncallback for when it has finished processing. Each of these callback takes 2 arguments:\nan `error`, and the transformed item from `arr`. If `iterator` passes an error to its\ncallback, the main `callback` (for the `map` function) is immediately called with the error.\n\nNote, that since this function applies the `iterator` to each item in parallel,\nthere is no guarantee that the `iterator` functions will complete in order.\nHowever, the results array will be in the same order as the original `arr`.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n  The iterator is passed a `callback(err, transformed)` which must be called once\n  it has completed with an error (which can be `null`) and a transformed item.\n* `callback(err, results)` - *Optional* A callback which is called when all `iterator`\n  functions have finished, or an error occurs. Results is an array of the\n  transformed items from the `arr`.\n\n__Example__\n\n```js\nasync.map(['file1','file2','file3'], fs.stat, function(err, results){\n    // results is now an array of stats for each file\n});\n```\n\n__Related__\n* mapSeries(arr, iterator, [callback])\n* mapLimit(arr, limit, iterator, [callback])\n\n---------------------------------------\n\n<a name=\"select\" />\n<a name=\"filter\" />\n### filter(arr, iterator, [callback])\n\n__Alias:__ `select`\n\nReturns a new array of all the values in `arr` which pass an async truth test.\n_The callback for each `iterator` call only accepts a single argument of `true` or\n`false`; it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like `fs.exists`. This operation is\nperformed in parallel, but the results array will be in the same order as the\noriginal.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in `arr`.\n  The `iterator` is passed a `callback(truthValue)`, which must be called with a\n  boolean argument once it has completed.\n* `callback(results)` - *Optional* A callback which is called after all the `iterator`\n  functions have finished.\n\n__Example__\n\n```js\nasync.filter(['file1','file2','file3'], fs.exists, function(results){\n    // results now equals an array of the existing files\n});\n```\n\n__Related__\n\n* filterSeries(arr, iterator, [callback])\n* filterLimit(arr, limit, iterator, [callback])\n\n---------------------------------------\n\n<a name=\"reject\" />\n### reject(arr, iterator, [callback])\n\nThe opposite of [`filter`](#filter). Removes values that pass an `async` truth test.\n\n__Related__\n\n* rejectSeries(arr, iterator, [callback])\n* rejectLimit(arr, limit, iterator, [callback])\n\n---------------------------------------\n\n<a name=\"reduce\" />\n### reduce(arr, memo, iterator, [callback])\n\n__Aliases:__ `inject`, `foldl`\n\nReduces `arr` into a single value using an async `iterator` to return\neach successive step. `memo` is the initial state of the reduction.\nThis function only operates in series.\n\nFor performance reasons, it may make sense to split a call to this function into\na parallel map, and then use the normal `Array.prototype.reduce` on the results.\nThis function is for situations where each step in the reduction needs to be async;\nif you can get the data before reducing it, then it's probably a good idea to do so.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `memo` - The initial state of the reduction.\n* `iterator(memo, item, callback)` - A function applied to each item in the\n  array to produce the next step in the reduction. The `iterator` is passed a\n  `callback(err, reduction)` which accepts an optional error as its first\n  argument, and the state of the reduction as the second. If an error is\n  passed to the callback, the reduction is stopped and the main `callback` is\n  immediately called with the error.\n* `callback(err, result)` - *Optional* A callback which is called after all the `iterator`\n  functions have finished. Result is the reduced value.\n\n__Example__\n\n```js\nasync.reduce([1,2,3], 0, function(memo, item, callback){\n    // pointless async:\n    process.nextTick(function(){\n        callback(null, memo + item)\n    });\n}, function(err, result){\n    // result is now equal to the last value of memo, which is 6\n});\n```\n\n---------------------------------------\n\n<a name=\"reduceRight\" />\n### reduceRight(arr, memo, iterator, [callback])\n\n__Alias:__ `foldr`\n\nSame as [`reduce`](#reduce), only operates on `arr` in reverse order.\n\n\n---------------------------------------\n\n<a name=\"detect\" />\n### detect(arr, iterator, [callback])\n\nReturns the first value in `arr` that passes an async truth test. The\n`iterator` is applied in parallel, meaning the first iterator to return `true` will\nfire the detect `callback` with that result. That means the result might not be\nthe first item in the original `arr` (in terms of order) that passes the test.\n\nIf order within the original `arr` is important, then look at [`detectSeries`](#detectSeries).\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in `arr`.\n  The iterator is passed a `callback(truthValue)` which must be called with a\n  boolean argument once it has completed. **Note: this callback does not take an error as its first argument.**\n* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns\n  `true`, or after all the `iterator` functions have finished. Result will be\n  the first item in the array that passes the truth test (iterator) or the\n  value `undefined` if none passed.  **Note: this callback does not take an error as its first argument.**\n\n__Example__\n\n```js\nasync.detect(['file1','file2','file3'], fs.exists, function(result){\n    // result now equals the first file in the list that exists\n});\n```\n\n__Related__\n\n* detectSeries(arr, iterator, [callback])\n* detectLimit(arr, limit, iterator, [callback])\n\n---------------------------------------\n\n<a name=\"sortBy\" />\n### sortBy(arr, iterator, [callback])\n\nSorts a list by the results of running each `arr` value through an async `iterator`.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n  The iterator is passed a `callback(err, sortValue)` which must be called once it\n  has completed with an error (which can be `null`) and a value to use as the sort\n  criteria.\n* `callback(err, results)` - *Optional* A callback which is called after all the `iterator`\n  functions have finished, or an error occurs. Results is the items from\n  the original `arr` sorted by the values returned by the `iterator` calls.\n\n__Example__\n\n```js\nasync.sortBy(['file1','file2','file3'], function(file, callback){\n    fs.stat(file, function(err, stats){\n        callback(err, stats.mtime);\n    });\n}, function(err, results){\n    // results is now the original array of files sorted by\n    // modified date\n});\n```\n\n__Sort Order__\n\nBy modifying the callback parameter the sorting order can be influenced:\n\n```js\n//ascending order\nasync.sortBy([1,9,3,5], function(x, callback){\n    callback(null, x);\n}, function(err,result){\n    //result callback\n} );\n\n//descending order\nasync.sortBy([1,9,3,5], function(x, callback){\n    callback(null, x*-1);    //<- x*-1 instead of x, turns the order around\n}, function(err,result){\n    //result callback\n} );\n```\n\n---------------------------------------\n\n<a name=\"some\" />\n### some(arr, iterator, [callback])\n\n__Alias:__ `any`\n\nReturns `true` if at least one element in the `arr` satisfies an async test.\n_The callback for each iterator call only accepts a single argument of `true` or\n`false`; it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like `fs.exists`. Once any iterator\ncall returns `true`, the main `callback` is immediately called.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in the array\n  in parallel. The iterator is passed a `callback(truthValue)`` which must be\n  called with a boolean argument once it has completed.\n* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns\n  `true`, or after all the iterator functions have finished. Result will be\n  either `true` or `false` depending on the values of the async tests.\n\n **Note: the callbacks do not take an error as their first argument.**\n__Example__\n\n```js\nasync.some(['file1','file2','file3'], fs.exists, function(result){\n    // if result is true then at least one of the files exists\n});\n```\n\n__Related__\n\n* someLimit(arr, limit, iterator, callback)\n\n---------------------------------------\n\n<a name=\"every\" />\n### every(arr, iterator, [callback])\n\n__Alias:__ `all`\n\nReturns `true` if every element in `arr` satisfies an async test.\n_The callback for each `iterator` call only accepts a single argument of `true` or\n`false`; it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like `fs.exists`.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A truth test to apply to each item in the array\n  in parallel. The iterator is passed a `callback(truthValue)` which must be\n  called with a  boolean argument once it has completed.\n* `callback(result)` - *Optional* A callback which is called after all the `iterator`\n  functions have finished. Result will be either `true` or `false` depending on\n  the values of the async tests.\n\n **Note: the callbacks do not take an error as their first argument.**\n\n__Example__\n\n```js\nasync.every(['file1','file2','file3'], fs.exists, function(result){\n    // if result is true then every file exists\n});\n```\n\n__Related__\n\n* everyLimit(arr, limit, iterator, callback)\n\n---------------------------------------\n\n<a name=\"concat\" />\n### concat(arr, iterator, [callback])\n\nApplies `iterator` to each item in `arr`, concatenating the results. Returns the\nconcatenated list. The `iterator`s are called in parallel, and the results are\nconcatenated as they return. There is no guarantee that the results array will\nbe returned in the original order of `arr` passed to the `iterator` function.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\n  The iterator is passed a `callback(err, results)` which must be called once it\n  has completed with an error (which can be `null`) and an array of results.\n* `callback(err, results)` - *Optional* A callback which is called after all the `iterator`\n  functions have finished, or an error occurs. Results is an array containing\n  the concatenated results of the `iterator` function.\n\n__Example__\n\n```js\nasync.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){\n    // files is now a list of filenames that exist in the 3 directories\n});\n```\n\n__Related__\n\n* concatSeries(arr, iterator, [callback])\n\n\n## Control Flow\n\n<a name=\"series\" />\n### series(tasks, [callback])\n\nRun the functions in the `tasks` array in series, each one running once the previous\nfunction has completed. If any functions in the series pass an error to its\ncallback, no more functions are run, and `callback` is immediately called with the value of the error.\nOtherwise, `callback` receives an array of results when `tasks` have completed.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function, and the results will be passed to the final `callback` as an object\ninstead of an array. This can be a more readable way of handling results from\n[`series`](#series).\n\n**Note** that while many implementations preserve the order of object properties, the\n[ECMAScript Language Specifcation](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\nexplicitly states that\n\n> The mechanics and order of enumerating the properties is not specified.\n\nSo if you rely on the order in which your series of functions are executed, and want\nthis to work on all platforms, consider using an array.\n\n__Arguments__\n\n* `tasks` - An array or object containing functions to run, each function is passed\n  a `callback(err, result)` it must call on completion with an error `err` (which can\n  be `null`) and an optional `result` value.\n* `callback(err, results)` - An optional callback to run once all the functions\n  have completed. This function gets a results array (or object) containing all\n  the result arguments passed to the `task` callbacks.\n\n__Example__\n\n```js\nasync.series([\n    function(callback){\n        // do some stuff ...\n        callback(null, 'one');\n    },\n    function(callback){\n        // do some more stuff ...\n        callback(null, 'two');\n    }\n],\n// optional callback\nfunction(err, results){\n    // results is now equal to ['one', 'two']\n});\n\n\n// an example using an object instead of an array\nasync.series({\n    one: function(callback){\n        setTimeout(function(){\n            callback(null, 1);\n        }, 200);\n    },\n    two: function(callback){\n        setTimeout(function(){\n            callback(null, 2);\n        }, 100);\n    }\n},\nfunction(err, results) {\n    // results is now equal to: {one: 1, two: 2}\n});\n```\n\n---------------------------------------\n\n<a name=\"parallel\" />\n### parallel(tasks, [callback])\n\nRun the `tasks` array of functions in parallel, without waiting until the previous\nfunction has completed. If any of the functions pass an error to its\ncallback, the main `callback` is immediately called with the value of the error.\nOnce the `tasks` have completed, the results are passed to the final `callback` as an\narray.\n\n**Note:** `parallel` is about kicking-off I/O tasks in parallel, not about parallel execution of code.  If your tasks do not use any timers or perform any I/O, they will actually be executed in series.  Any synchronous setup sections for each task will happen one after the other.  JavaScript remains single-threaded.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final `callback` as an object\ninstead of an array. This can be a more readable way of handling results from\n[`parallel`](#parallel).\n\n\n__Arguments__\n\n* `tasks` - An array or object containing functions to run. Each function is passed\n  a `callback(err, result)` which it must call on completion with an error `err`\n  (which can be `null`) and an optional `result` value.\n* `callback(err, results)` - An optional callback to run once all the functions\n  have completed. This function gets a results array (or object) containing all\n  the result arguments passed to the task callbacks.\n\n__Example__\n\n```js\nasync.parallel([\n    function(callback){\n        setTimeout(function(){\n            callback(null, 'one');\n        }, 200);\n    },\n    function(callback){\n        setTimeout(function(){\n            callback(null, 'two');\n        }, 100);\n    }\n],\n// optional callback\nfunction(err, results){\n    // the results array will equal ['one','two'] even though\n    // the second function had a shorter timeout.\n});\n\n\n// an example using an object instead of an array\nasync.parallel({\n    one: function(callback){\n        setTimeout(function(){\n            callback(null, 1);\n        }, 200);\n    },\n    two: function(callback){\n        setTimeout(function(){\n            callback(null, 2);\n        }, 100);\n    }\n},\nfunction(err, results) {\n    // results is now equals to: {one: 1, two: 2}\n});\n```\n\n__Related__\n\n* parallelLimit(tasks, limit, [callback])\n\n---------------------------------------\n\n<a name=\"whilst\" />\n### whilst(test, fn, callback)\n\nRepeatedly call `fn`, while `test` returns `true`. Calls `callback` when stopped,\nor an error occurs.\n\n__Arguments__\n\n* `test()` - synchronous truth test to perform before each execution of `fn`.\n* `fn(callback)` - A function which is called each time `test` passes. The function is\n  passed a `callback(err)`, which must be called once it has completed with an\n  optional `err` argument.\n* `callback(err)` - A callback which is called after the test fails and repeated\n  execution of `fn` has stopped.\n\n__Example__\n\n```js\nvar count = 0;\n\nasync.whilst(\n    function () { return count < 5; },\n    function (callback) {\n        count++;\n        setTimeout(callback, 1000);\n    },\n    function (err) {\n        // 5 seconds have passed\n    }\n);\n```\n\n---------------------------------------\n\n<a name=\"doWhilst\" />\n### doWhilst(fn, test, callback)\n\nThe post-check version of [`whilst`](#whilst). To reflect the difference in\nthe order of operations, the arguments `test` and `fn` are switched.\n\n`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n\n---------------------------------------\n\n<a name=\"until\" />\n### until(test, fn, callback)\n\nRepeatedly call `fn` until `test` returns `true`. Calls `callback` when stopped,\nor an error occurs.\n\nThe inverse of [`whilst`](#whilst).\n\n---------------------------------------\n\n<a name=\"doUntil\" />\n### doUntil(fn, test, callback)\n\nLike [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`.\n\n---------------------------------------\n\n<a name=\"during\" />\n### during(test, fn, callback)\n\nLike [`whilst`](#whilst), except the `test` is an asynchronous function that is passed a callback in the form of `function (err, truth)`. If error is passed to `test` or `fn`, the main callback is immediately called with the value of the error.\n\n__Example__\n\n```js\nvar count = 0;\n\nasync.during(\n    function (callback) {\n      return callback(null, count < 5);\n    },\n    function (callback) {\n        count++;\n        setTimeout(callback, 1000);\n    },\n    function (err) {\n        // 5 seconds have passed\n    }\n);\n```\n\n---------------------------------------\n\n<a name=\"doDuring\" />\n### doDuring(fn, test, callback)\n\nThe post-check version of [`during`](#during). To reflect the difference in\nthe order of operations, the arguments `test` and `fn` are switched.\n\nAlso a version of [`doWhilst`](#doWhilst) with asynchronous `test` function.\n\n---------------------------------------\n\n<a name=\"forever\" />\n### forever(fn, [errback])\n\nCalls the asynchronous function `fn` with a callback parameter that allows it to\ncall itself again, in series, indefinitely.\n\nIf an error is passed to the callback then `errback` is called with the\nerror, and execution stops, otherwise it will never be called.\n\n```js\nasync.forever(\n    function(next) {\n        // next is suitable for passing to things that need a callback(err [, whatever]);\n        // it will result in this function being called again.\n    },\n    function(err) {\n        // if next is called with a value in its first parameter, it will appear\n        // in here as 'err', and execution will stop.\n    }\n);\n```\n\n---------------------------------------\n\n<a name=\"waterfall\" />\n### waterfall(tasks, [callback])\n\nRuns the `tasks` array of functions in series, each passing their results to the next in\nthe array. However, if any of the `tasks` pass an error to their own callback, the\nnext function is not executed, and the main `callback` is immediately called with\nthe error.\n\n__Arguments__\n\n* `tasks` - An array of functions to run, each function is passed a\n  `callback(err, result1, result2, ...)` it must call on completion. The first\n  argument is an error (which can be `null`) and any further arguments will be\n  passed as arguments in order to the next task.\n* `callback(err, [results])` - An optional callback to run once all the functions\n  have completed. This will be passed the results of the last task's callback.\n\n\n\n__Example__\n\n```js\nasync.waterfall([\n    function(callback) {\n        callback(null, 'one', 'two');\n    },\n    function(arg1, arg2, callback) {\n      // arg1 now equals 'one' and arg2 now equals 'two'\n        callback(null, 'three');\n    },\n    function(arg1, callback) {\n        // arg1 now equals 'three'\n        callback(null, 'done');\n    }\n], function (err, result) {\n    // result now equals 'done'\n});\n```\n\n---------------------------------------\n<a name=\"compose\" />\n### compose(fn1, fn2...)\n\nCreates a function which is a composition of the passed asynchronous\nfunctions. Each function consumes the return value of the function that\nfollows. Composing functions `f()`, `g()`, and `h()` would produce the result of\n`f(g(h()))`, only this version uses callbacks to obtain the return values.\n\nEach function is executed with the `this` binding of the composed function.\n\n__Arguments__\n\n* `functions...` - the asynchronous functions to compose\n\n\n__Example__\n\n```js\nfunction add1(n, callback) {\n    setTimeout(function () {\n        callback(null, n + 1);\n    }, 10);\n}\n\nfunction mul3(n, callback) {\n    setTimeout(function () {\n        callback(null, n * 3);\n    }, 10);\n}\n\nvar add1mul3 = async.compose(mul3, add1);\n\nadd1mul3(4, function (err, result) {\n   // result now equals 15\n});\n```\n\n---------------------------------------\n<a name=\"seq\" />\n### seq(fn1, fn2...)\n\nVersion of the compose function that is more natural to read.\nEach function consumes the return value of the previous function.\nIt is the equivalent of [`compose`](#compose) with the arguments reversed.\n\nEach function is executed with the `this` binding of the composed function.\n\n__Arguments__\n\n* `functions...` - the asynchronous functions to compose\n\n\n__Example__\n\n```js\n// Requires lodash (or underscore), express3 and dresende's orm2.\n// Part of an app, that fetches cats of the logged user.\n// This example uses `seq` function to avoid overnesting and error\n// handling clutter.\napp.get('/cats', function(request, response) {\n  var User = request.models.User;\n  async.seq(\n    _.bind(User.get, User),  // 'User.get' has signature (id, callback(err, data))\n    function(user, fn) {\n      user.getCats(fn);      // 'getCats' has signature (callback(err, data))\n    }\n  )(req.session.user_id, function (err, cats) {\n    if (err) {\n      console.error(err);\n      response.json({ status: 'error', message: err.message });\n    } else {\n      response.json({ status: 'ok', message: 'Cats found', data: cats });\n    }\n  });\n});\n```\n\n---------------------------------------\n<a name=\"applyEach\" />\n### applyEach(fns, args..., callback)\n\nApplies the provided arguments to each function in the array, calling\n`callback` after all functions have completed. If you only provide the first\nargument, then it will return a function which lets you pass in the\narguments as if it were a single function call.\n\n__Arguments__\n\n* `fns` - the asynchronous functions to all call with the same arguments\n* `args...` - any number of separate arguments to pass to the function\n* `callback` - the final argument should be the callback, called when all\n  functions have completed processing\n\n\n__Example__\n\n```js\nasync.applyEach([enableSearch, updateSchema], 'bucket', callback);\n\n// partial application example:\nasync.each(\n    buckets,\n    async.applyEach([enableSearch, updateSchema]),\n    callback\n);\n```\n\n__Related__\n\n* applyEachSeries(tasks, args..., [callback])\n\n---------------------------------------\n\n<a name=\"queue\" />\n### queue(worker, [concurrency])\n\nCreates a `queue` object with the specified `concurrency`. Tasks added to the\n`queue` are processed in parallel (up to the `concurrency` limit). If all\n`worker`s are in progress, the task is queued until one becomes available.\nOnce a `worker` completes a `task`, that `task`'s callback is called.\n\n__Arguments__\n\n* `worker(task, callback)` - An asynchronous function for processing a queued\n  task, which must call its `callback(err)` argument when finished, with an\n  optional `error` as an argument.  If you want to handle errors from an individual task, pass a callback to `q.push()`.\n* `concurrency` - An `integer` for determining how many `worker` functions should be\n  run in parallel.  If omitted, the concurrency defaults to `1`.  If the concurrency is `0`, an error is thrown.\n\n__Queue objects__\n\nThe `queue` object returned by this function has the following properties and\nmethods:\n\n* `length()` - a function returning the number of items waiting to be processed.\n* `started` - a function returning whether or not any items have been pushed and processed by the queue\n* `running()` - a function returning the number of items currently being processed.\n* `idle()` - a function returning false if there are items waiting or being processed, or true if not.\n* `concurrency` - an integer for determining how many `worker` functions should be\n  run in parallel. This property can be changed after a `queue` is created to\n  alter the concurrency on-the-fly.\n* `push(task, [callback])` - add a new task to the `queue`. Calls `callback` once\n  the `worker` has finished processing the task. Instead of a single task, a `tasks` array\n  can be submitted. The respective callback is used for every task in the list.\n* `unshift(task, [callback])` - add a new task to the front of the `queue`.\n* `saturated` - a callback that is called when the `queue` length hits the `concurrency` limit,\n   and further tasks will be queued.\n* `empty` - a callback that is called when the last item from the `queue` is given to a `worker`.\n* `drain` - a callback that is called when the last item from the `queue` has returned from the `worker`.\n* `paused` - a boolean for determining whether the queue is in a paused state\n* `pause()` - a function that pauses the processing of tasks until `resume()` is called.\n* `resume()` - a function that resumes the processing of queued tasks when the queue is paused.\n* `kill()` - a function that removes the `drain` callback and empties remaining tasks from the queue forcing it to go idle.\n\n__Example__\n\n```js\n// create a queue object with concurrency 2\n\nvar q = async.queue(function (task, callback) {\n    console.log('hello ' + task.name);\n    callback();\n}, 2);\n\n\n// assign a callback\nq.drain = function() {\n    console.log('all items have been processed');\n}\n\n// add some items to the queue\n\nq.push({name: 'foo'}, function (err) {\n    console.log('finished processing foo');\n});\nq.push({name: 'bar'}, function (err) {\n    console.log('finished processing bar');\n});\n\n// add some items to the queue (batch-wise)\n\nq.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) {\n    console.log('finished processing item');\n});\n\n// add some items to the front of the queue\n\nq.unshift({name: 'bar'}, function (err) {\n    console.log('finished processing bar');\n});\n```\n\n\n---------------------------------------\n\n<a name=\"priorityQueue\" />\n### priorityQueue(worker, concurrency)\n\nThe same as [`queue`](#queue) only tasks are assigned a priority and completed in ascending priority order. There are two differences between `queue` and `priorityQueue` objects:\n\n* `push(task, priority, [callback])` - `priority` should be a number. If an array of\n  `tasks` is given, all tasks will be assigned the same priority.\n* The `unshift` method was removed.\n\n---------------------------------------\n\n<a name=\"cargo\" />\n### cargo(worker, [payload])\n\nCreates a `cargo` object with the specified payload. Tasks added to the\ncargo will be processed altogether (up to the `payload` limit). If the\n`worker` is in progress, the task is queued until it becomes available. Once\nthe `worker` has completed some tasks, each callback of those tasks is called.\nCheck out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966) for how `cargo` and `queue` work.\n\nWhile [queue](#queue) passes only one task to one of a group of workers\nat a time, cargo passes an array of tasks to a single worker, repeating\nwhen the worker is finished.\n\n__Arguments__\n\n* `worker(tasks, callback)` - An asynchronous function for processing an array of\n  queued tasks, which must call its `callback(err)` argument when finished, with\n  an optional `err` argument.\n* `payload` - An optional `integer` for determining how many tasks should be\n  processed per round; if omitted, the default is unlimited.\n\n__Cargo objects__\n\nThe `cargo` object returned by this function has the following properties and\nmethods:\n\n* `length()` - A function returning the number of items waiting to be processed.\n* `payload` - An `integer` for determining how many tasks should be\n  process per round. This property can be changed after a `cargo` is created to\n  alter the payload on-the-fly.\n* `push(task, [callback])` - Adds `task` to the `queue`. The callback is called\n  once the `worker` has finished processing the task. Instead of a single task, an array of `tasks`\n  can be submitted. The respective callback is used for every task in the list.\n* `saturated` - A callback that is called when the `queue.length()` hits the concurrency and further tasks will be queued.\n* `empty` - A callback that is called when the last item from the `queue` is given to a `worker`.\n* `drain` - A callback that is called when the last item from the `queue` has returned from the `worker`.\n* `idle()`, `pause()`, `resume()`, `kill()` - cargo inherits all of the same methods and event calbacks as [`queue`](#queue)\n\n__Example__\n\n```js\n// create a cargo object with payload 2\n\nvar cargo = async.cargo(function (tasks, callback) {\n    for(var i=0; i<tasks.length; i++){\n      console.log('hello ' + tasks[i].name);\n    }\n    callback();\n}, 2);\n\n\n// add some items\n\ncargo.push({name: 'foo'}, function (err) {\n    console.log('finished processing foo');\n});\ncargo.push({name: 'bar'}, function (err) {\n    console.log('finished processing bar');\n});\ncargo.push({name: 'baz'}, function (err) {\n    console.log('finished processing baz');\n});\n```\n\n---------------------------------------\n\n<a name=\"auto\" />\n### auto(tasks, [callback])\n\nDetermines the best order for running the functions in `tasks`, based on their requirements. Each function can optionally depend on other functions being completed first, and each function is run as soon as its requirements are satisfied.\n\nIf any of the functions pass an error to their callback, the `auto` sequence will stop. Further tasks will not execute (so any other functions depending on it will not run), and the main `callback` is immediately called with the error.  Functions also receive an object containing the results of functions which have completed so far.\n\nNote, all functions are called with a `results` object as a second argument,\nso it is unsafe to pass functions in the `tasks` object which cannot handle the\nextra argument.\n\nFor example, this snippet of code:\n\n```js\nasync.auto({\n  readData: async.apply(fs.readFile, 'data.txt', 'utf-8')\n}, callback);\n```\n\nwill have the effect of calling `readFile` with the results object as the last\nargument, which will fail:\n\n```js\nfs.readFile('data.txt', 'utf-8', cb, {});\n```\n\nInstead, wrap the call to `readFile` in a function which does not forward the\n`results` object:\n\n```js\nasync.auto({\n  readData: function(cb, results){\n    fs.readFile('data.txt', 'utf-8', cb);\n  }\n}, callback);\n```\n\n__Arguments__\n\n* `tasks` - An object. Each of its properties is either a function or an array of\n  requirements, with the function itself the last item in the array. The object's key\n  of a property serves as the name of the task defined by that property,\n  i.e. can be used when specifying requirements for other tasks.\n  The function receives two arguments: (1) a `callback(err, result)` which must be\n  called when finished, passing an `error` (which can be `null`) and the result of\n  the function's execution, and (2) a `results` object, containing the results of\n  the previously executed functions.\n* `callback(err, results)` - An optional callback which is called when all the\n  tasks have been completed. It receives the `err` argument if any `tasks`\n  pass an error to their callback. Results are always returned; however, if\n  an error occurs, no further `tasks` will be performed, and the results\n  object will only contain partial results.\n\n\n__Example__\n\n```js\nasync.auto({\n    get_data: function(callback){\n        console.log('in get_data');\n        // async code to get some data\n        callback(null, 'data', 'converted to array');\n    },\n    make_folder: function(callback){\n        console.log('in make_folder');\n        // async code to create a directory to store a file in\n        // this is run at the same time as getting the data\n        callback(null, 'folder');\n    },\n    write_file: ['get_data', 'make_folder', function(callback, results){\n        console.log('in write_file', JSON.stringify(results));\n        // once there is some data and the directory exists,\n        // write the data to a file in the directory\n        callback(null, 'filename');\n    }],\n    email_link: ['write_file', function(callback, results){\n        console.log('in email_link', JSON.stringify(results));\n        // once the file is written let's email a link to it...\n        // results.write_file contains the filename returned by write_file.\n        callback(null, {'file':results.write_file, 'email':'user@example.com'});\n    }]\n}, function(err, results) {\n    console.log('err = ', err);\n    console.log('results = ', results);\n});\n```\n\nThis is a fairly trivial example, but to do this using the basic parallel and\nseries functions would look like this:\n\n```js\nasync.parallel([\n    function(callback){\n        console.log('in get_data');\n        // async code to get some data\n        callback(null, 'data', 'converted to array');\n    },\n    function(callback){\n        console.log('in make_folder');\n        // async code to create a directory to store a file in\n        // this is run at the same time as getting the data\n        callback(null, 'folder');\n    }\n],\nfunction(err, results){\n    async.series([\n        function(callback){\n            console.log('in write_file', JSON.stringify(results));\n            // once there is some data and the directory exists,\n            // write the data to a file in the directory\n            results.push('filename');\n            callback(null);\n        },\n        function(callback){\n            console.log('in email_link', JSON.stringify(results));\n            // once the file is written let's email a link to it...\n            callback(null, {'file':results.pop(), 'email':'user@example.com'});\n        }\n    ]);\n});\n```\n\nFor a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding\nnew tasks much easier (and the code more readable).\n\n\n---------------------------------------\n\n<a name=\"retry\" />\n### retry([opts = {times: 5, interval: 0}| 5], task, [callback])\n\nAttempts to get a successful response from `task` no more than `times` times before\nreturning an error. If the task is successful, the `callback` will be passed the result\nof the successful task. If all attempts fail, the callback will be passed the error and\nresult (if any) of the final attempt.\n\n__Arguments__\n\n* `opts` - Can be either an object with `times` and `interval` or a number. `times` is how many attempts should be made before giving up. `interval` is how long to wait inbetween attempts. Defaults to {times: 5, interval: 0}\n  * if a number is passed in it sets `times` only (with `interval` defaulting to 0).\n* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)`\n  which must be called when finished, passing `err` (which can be `null`) and the `result` of\n  the function's execution, and (2) a `results` object, containing the results of\n  the previously executed functions (if nested inside another control flow).\n* `callback(err, results)` - An optional callback which is called when the\n  task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`.\n\nThe [`retry`](#retry) function can be used as a stand-alone control flow by passing a\ncallback, as shown below:\n\n```js\nasync.retry(3, apiMethod, function(err, result) {\n    // do something with the result\n});\n```\n\n```js\nasync.retry({times: 3, interval: 200}, apiMethod, function(err, result) {\n    // do something with the result\n});\n```\n\nIt can also be embeded within other control flow functions to retry individual methods\nthat are not as reliable, like this:\n\n```js\nasync.auto({\n    users: api.getUsers.bind(api),\n    payments: async.retry(3, api.getPayments.bind(api))\n}, function(err, results) {\n  // do something with the results\n});\n```\n\n\n---------------------------------------\n\n<a name=\"iterator\" />\n### iterator(tasks)\n\nCreates an iterator function which calls the next function in the `tasks` array,\nreturning a continuation to call the next one after that. It's also possible to\n“peek” at the next iterator with `iterator.next()`.\n\nThis function is used internally by the `async` module, but can be useful when\nyou want to manually control the flow of functions in series.\n\n__Arguments__\n\n* `tasks` - An array of functions to run.\n\n__Example__\n\n```js\nvar iterator = async.iterator([\n    function(){ sys.p('one'); },\n    function(){ sys.p('two'); },\n    function(){ sys.p('three'); }\n]);\n\nnode> var iterator2 = iterator();\n'one'\nnode> var iterator3 = iterator2();\n'two'\nnode> iterator3();\n'three'\nnode> var nextfn = iterator2.next();\nnode> nextfn();\n'three'\n```\n\n---------------------------------------\n\n<a name=\"apply\" />\n### apply(function, arguments..)\n\nCreates a continuation function with some arguments already applied.\n\nUseful as a shorthand when combined with other control flow functions. Any arguments\npassed to the returned function are added to the arguments originally passed\nto apply.\n\n__Arguments__\n\n* `function` - The function you want to eventually apply all arguments to.\n* `arguments...` - Any number of arguments to automatically apply when the\n  continuation is called.\n\n__Example__\n\n```js\n// using apply\n\nasync.parallel([\n    async.apply(fs.writeFile, 'testfile1', 'test1'),\n    async.apply(fs.writeFile, 'testfile2', 'test2'),\n]);\n\n\n// the same process without using apply\n\nasync.parallel([\n    function(callback){\n        fs.writeFile('testfile1', 'test1', callback);\n    },\n    function(callback){\n        fs.writeFile('testfile2', 'test2', callback);\n    }\n]);\n```\n\nIt's possible to pass any number of additional arguments when calling the\ncontinuation:\n\n```js\nnode> var fn = async.apply(sys.puts, 'one');\nnode> fn('two', 'three');\none\ntwo\nthree\n```\n\n---------------------------------------\n\n<a name=\"nextTick\" />\n### nextTick(callback), setImmediate(callback)\n\nCalls `callback` on a later loop around the event loop. In Node.js this just\ncalls `process.nextTick`; in the browser it falls back to `setImmediate(callback)`\nif available, otherwise `setTimeout(callback, 0)`, which means other higher priority\nevents may precede the execution of `callback`.\n\nThis is used internally for browser-compatibility purposes.\n\n__Arguments__\n\n* `callback` - The function to call on a later loop around the event loop.\n\n__Example__\n\n```js\nvar call_order = [];\nasync.nextTick(function(){\n    call_order.push('two');\n    // call_order now equals ['one','two']\n});\ncall_order.push('one')\n```\n\n<a name=\"times\" />\n### times(n, iterator, [callback])\n\nCalls the `iterator` function `n` times, and accumulates results in the same manner\nyou would use with [`map`](#map).\n\n__Arguments__\n\n* `n` - The number of times to run the function.\n* `iterator` - The function to call `n` times.\n* `callback` - see [`map`](#map)\n\n__Example__\n\n```js\n// Pretend this is some complicated async factory\nvar createUser = function(id, callback) {\n  callback(null, {\n    id: 'user' + id\n  })\n}\n// generate 5 users\nasync.times(5, function(n, next){\n    createUser(n, function(err, user) {\n      next(err, user)\n    })\n}, function(err, users) {\n  // we should now have 5 users\n});\n```\n\n__Related__\n\n* timesSeries(n, iterator, [callback])\n* timesLimit(n, limit, iterator, [callback])\n\n\n## Utils\n\n<a name=\"memoize\" />\n### memoize(fn, [hasher])\n\nCaches the results of an `async` function. When creating a hash to store function\nresults against, the callback is omitted from the hash and an optional hash\nfunction can be used.\n\nIf no hash function is specified, the first argument is used as a hash key, which may work reasonably if it is a string or a data type that converts to a distinct string. Note that objects and arrays will not behave reasonably. Neither will cases where the other arguments are significant. In such cases, specify your own hash function.\n\nThe cache of results is exposed as the `memo` property of the function returned\nby `memoize`.\n\n__Arguments__\n\n* `fn` - The function to proxy and cache results from.\n* `hasher` - An optional function for generating a custom hash for storing\n  results. It has all the arguments applied to it apart from the callback, and\n  must be synchronous.\n\n__Example__\n\n```js\nvar slow_fn = function (name, callback) {\n    // do something\n    callback(null, result);\n};\nvar fn = async.memoize(slow_fn);\n\n// fn can now be used as if it were slow_fn\nfn('some name', function () {\n    // callback\n});\n```\n\n<a name=\"unmemoize\" />\n### unmemoize(fn)\n\nUndoes a [`memoize`](#memoize)d function, reverting it to the original, unmemoized\nform. Handy for testing.\n\n__Arguments__\n\n* `fn` - the memoized function\n\n---------------------------------------\n\n<a name=\"ensureAsync\" />\n### ensureAsync(fn)\n\nWrap an async function and ensure it calls its callback on a later tick of the event loop.  If the function already calls its callback on a next tick, no extra deferral is added. This is useful for preventing stack overflows (`RangeError: Maximum call stack size exceeded`) and generally keeping [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony) contained.\n\n__Arguments__\n\n* `fn` - an async function, one that expects a node-style callback as its last argument\n\nReturns a wrapped function with the exact same call signature as the function passed in.\n\n__Example__\n\n```js\nfunction sometimesAsync(arg, callback) {\n  if (cache[arg]) {\n    return callback(null, cache[arg]); // this would be synchronous!!\n  } else {\n    doSomeIO(arg, callback); // this IO would be asynchronous\n  }\n}\n\n// this has a risk of stack overflows if many results are cached in a row\nasync.mapSeries(args, sometimesAsync, done);\n\n// this will defer sometimesAsync's callback if necessary,\n// preventing stack overflows\nasync.mapSeries(args, async.ensureAsync(sometimesAsync), done);\n\n```\n\n---------------------------------------\n\n<a name=\"constant\">\n### constant(values...)\n\nReturns a function that when called, calls-back with the values provided.  Useful as the first function in a `waterfall`, or for plugging values in to `auto`.\n\n__Example__\n\n```js\nasync.waterfall([\n  async.constant(42),\n  function (value, next) {\n    // value === 42\n  },\n  //...\n], callback);\n\nasync.waterfall([\n  async.constant(filename, \"utf8\"),\n  fs.readFile,\n  function (fileData, next) {\n    //...\n  }\n  //...\n], callback);\n\nasync.auto({\n  hostname: async.constant(\"https://server.net/\"),\n  port: findFreePort,\n  launchServer: [\"hostname\", \"port\", function (cb, options) {\n    startServer(options, cb);\n  }],\n  //...\n}, callback);\n\n```\n\n---------------------------------------\n\n<a name=\"asyncify\">\n<a name=\"wrapSync\">\n### asyncify(func)\n\n__Alias:__ `wrapSync`\n\nTake a sync function and make it async, passing its return value to a callback. This is useful for plugging sync functions into a waterfall, series, or other async functions. Any arguments passed to the generated function will be passed to the wrapped function (except for the final callback argument). Errors thrown will be passed to the callback.\n\n__Example__\n\n```js\nasync.waterfall([\n  async.apply(fs.readFile, filename, \"utf8\"),\n  async.asyncify(JSON.parse),\n  function (data, next) {\n    // data is the result of parsing the text.\n    // If there was a parsing error, it would have been caught.\n  }\n], callback)\n```\n\n---------------------------------------\n\n<a name=\"log\" />\n### log(function, arguments)\n\nLogs the result of an `async` function to the `console`. Only works in Node.js or\nin browsers that support `console.log` and `console.error` (such as FF and Chrome).\nIf multiple arguments are returned from the async function, `console.log` is\ncalled on each argument in order.\n\n__Arguments__\n\n* `function` - The function you want to eventually apply all arguments to.\n* `arguments...` - Any number of arguments to apply to the function.\n\n__Example__\n\n```js\nvar hello = function(name, callback){\n    setTimeout(function(){\n        callback(null, 'hello ' + name);\n    }, 1000);\n};\n```\n```js\nnode> async.log(hello, 'world');\n'hello world'\n```\n\n---------------------------------------\n\n<a name=\"dir\" />\n### dir(function, arguments)\n\nLogs the result of an `async` function to the `console` using `console.dir` to\ndisplay the properties of the resulting object. Only works in Node.js or\nin browsers that support `console.dir` and `console.error` (such as FF and Chrome).\nIf multiple arguments are returned from the async function, `console.dir` is\ncalled on each argument in order.\n\n__Arguments__\n\n* `function` - The function you want to eventually apply all arguments to.\n* `arguments...` - Any number of arguments to apply to the function.\n\n__Example__\n\n```js\nvar hello = function(name, callback){\n    setTimeout(function(){\n        callback(null, {hello: name});\n    }, 1000);\n};\n```\n```js\nnode> async.dir(hello, 'world');\n{hello: 'world'}\n```\n\n---------------------------------------\n\n<a name=\"noConflict\" />\n### noConflict()\n\nChanges the value of `async` back to its original value, returning a reference to the\n`async` object.\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/caolan/async/issues"},"homepage":"https://github.com/caolan/async#readme","keywords":["async","callback","utility","module"],"license":"MIT","_attachments":{},"_etag":"\"685YP27DAOGC156AQFN4M18O5\""}
\ No newline at end of file
index 9ce4b395f8afffb08d41c4300bf7ba5d951f8de4..870e3b8b865d8ada75522ac548dc3133d6f93158 100644 (file)
@@ -1 +1 @@
-{"_id":"atom-space-pen-views","_rev":"58-a2a86ef86272134f513b8fdbc16ef677","name":"atom-space-pen-views","description":"Atom SpacePen views that used to live in core.","dist-tags":{"latest":"2.0.5"},"versions":{"0.1.0":{"name":"atom-space-pen-views","version":"0.1.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"29922807a4258c6d557e467f34058c096bb2eb60","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.1.0","_shasum":"6a8541ac5611342fe3bd01470d0cabc939393681","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"6a8541ac5611342fe3bd01470d0cabc939393681","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.1.0.tgz"},"directories":{}},"0.2.0":{"name":"atom-space-pen-views","version":"0.2.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"035792c8593c2f706b310b6d955e18768417ae44","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.2.0","_shasum":"773624b339095a9c863456fbcf4cae178c4d4c2d","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"773624b339095a9c863456fbcf4cae178c4d4c2d","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.2.0.tgz"},"directories":{}},"0.3.0":{"name":"atom-space-pen-views","version":"0.3.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"5e3aba1b73fd45dc3e6f6c1acb0fad06b9331e6e","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.3.0","_shasum":"2263070c26f7915aa52fd874a2283e328597e624","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"2263070c26f7915aa52fd874a2283e328597e624","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.3.0.tgz"},"directories":{}},"0.4.0":{"name":"atom-space-pen-views","version":"0.4.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"d0aa5125bfa38cce2c2d8fad86a48c80ad2bdd07","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.4.0","_shasum":"9693e927fe2e0ab7ff07322d0ee78b9b57d6fc03","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"9693e927fe2e0ab7ff07322d0ee78b9b57d6fc03","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.4.0.tgz"},"directories":{}},"0.5.0":{"name":"atom-space-pen-views","version":"0.5.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"4ce324415be18d81c2f06958abd98a659e018ac9","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.5.0","_shasum":"dda2aca056bf103fda54627788a63142ccffed62","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"dda2aca056bf103fda54627788a63142ccffed62","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.5.0.tgz"},"directories":{}},"0.6.0":{"name":"atom-space-pen-views","version":"0.6.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"4d61d5ce459a7ba072f02974d1d148080363969d","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.6.0","_shasum":"d931e3c683a9b0e157a693df3dde537d8f8c1b06","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"d931e3c683a9b0e157a693df3dde537d8f8c1b06","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.6.0.tgz"},"directories":{}},"0.7.0":{"name":"atom-space-pen-views","version":"0.7.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"331cf48490a698e265686ac10031ee9f34f29742","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.7.0","_shasum":"1f2a948d7e942bd0a53d9d60cf59a10d2f7a9b32","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"1f2a948d7e942bd0a53d9d60cf59a10d2f7a9b32","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.7.0.tgz"},"directories":{}},"0.8.0":{"name":"atom-space-pen-views","version":"0.8.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.0.2"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"776c0eb0f9b960e1bba4b2ba66f0a4dcfab401b9","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.8.0","_shasum":"7cfa29e38bef0390c70d9fb6e87939fa2b43d9e7","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"7cfa29e38bef0390c70d9fb6e87939fa2b43d9e7","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.8.0.tgz"},"directories":{}},"0.9.0":{"name":"atom-space-pen-views","version":"0.9.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"9aa6450e515b1c2aeffc459156e9a08073cbd288","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.9.0","_shasum":"5a99ee4ac1608db8d92787e591199b2d5a4fa39d","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"5a99ee4ac1608db8d92787e591199b2d5a4fa39d","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.9.0.tgz"},"directories":{}},"0.10.0":{"name":"atom-space-pen-views","version":"0.10.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"bf496a8fa1ba7e88a7c590f4790c148bd861db29","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.10.0","_shasum":"3efed9951f8e27ecd9da4b7c6a53d3f1e47f654e","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"3efed9951f8e27ecd9da4b7c6a53d3f1e47f654e","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.10.0.tgz"},"directories":{}},"0.11.0":{"name":"atom-space-pen-views","version":"0.11.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"d3244a2a9f39031a73e70372ecd2fd64a200f11f","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.11.0","_shasum":"4963b92de3a13fc8172bb5ac5437e31e24346b6f","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"4963b92de3a13fc8172bb5ac5437e31e24346b6f","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.11.0.tgz"},"directories":{}},"0.13.0":{"name":"atom-space-pen-views","version":"0.13.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"742768be175def710419462b7b7d1785bb99055f","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.13.0","_shasum":"264c63d3667fa39bbeff5b354dae8da4a6f1fa17","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"264c63d3667fa39bbeff5b354dae8da4a6f1fa17","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.13.0.tgz"},"directories":{}},"0.14.0":{"name":"atom-space-pen-views","version":"0.14.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"be449b1435bafa5ed458d6517de5c5f28c97fbcb","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.14.0","_shasum":"55251cfee4611949a976f0bcae75b2fc89064d11","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"55251cfee4611949a976f0bcae75b2fc89064d11","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.14.0.tgz"},"directories":{}},"0.15.0":{"name":"atom-space-pen-views","version":"0.15.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"38d1b933d8c287f429e25494e2f82d790443a2a3","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.15.0","_shasum":"594a656d4593c1af2062a97f1219005d8d311021","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"594a656d4593c1af2062a97f1219005d8d311021","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.15.0.tgz"},"directories":{}},"0.16.0":{"name":"atom-space-pen-views","version":"0.16.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"65ba384aa1094c0ac07a89f524ae0daa40dc1a87","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.16.0","_shasum":"73ce03fb582e9af608c47499ba84e63a9ce844e3","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"73ce03fb582e9af608c47499ba84e63a9ce844e3","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.16.0.tgz"},"directories":{}},"0.17.0":{"name":"atom-space-pen-views","version":"0.17.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"50a16d5424f6564146957e84e4a66d8465ff345c","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.17.0","_shasum":"575acc87821cf55b0584f4cec0e44f1323f49cf2","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"575acc87821cf55b0584f4cec0e44f1323f49cf2","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.17.0.tgz"},"directories":{}},"0.18.0":{"name":"atom-space-pen-views","version":"0.18.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.2.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"c4dcae1e5c0591665a99a453ced1a215acf0d878","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.18.0","_shasum":"d7e372e1c327bb35ef5496c8adddfa8a242d71eb","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"d7e372e1c327bb35ef5496c8adddfa8a242d71eb","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.18.0.tgz"},"directories":{}},"0.19.0":{"name":"atom-space-pen-views","version":"0.19.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.2.2"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"8da5806990d2c6fce6e1d02b4842ec38c2767c0c","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.19.0","_shasum":"31ddba42745fa63ddc6f23cefc3bd1aae281bc8f","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"31ddba42745fa63ddc6f23cefc3bd1aae281bc8f","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.19.0.tgz"},"directories":{}},"0.20.0":{"name":"atom-space-pen-views","version":"0.20.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.2.2"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"cbb2f0d2e1b3295f5a56388fdd61850ccf1b531f","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.20.0","_shasum":"552401bc4324a85772b20e96aac0a4650be937de","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"552401bc4324a85772b20e96aac0a4650be937de","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.20.0.tgz"},"directories":{}},"0.21.0":{"name":"atom-space-pen-views","version":"0.21.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.3.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"c9d2dff2aa5d3acc89b5ab16ad2b69721c6d0034","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.21.0","_shasum":"4a281b0c795e4e06c9728fb7470d2e5314a50424","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"4a281b0c795e4e06c9728fb7470d2e5314a50424","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.21.0.tgz"},"directories":{}},"1.0.0":{"name":"atom-space-pen-views","version":"1.0.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^1.0.0","space-pen":"^4.3.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"728ed56a53c322336e8f9ca0953863057d3c46e6","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@1.0.0","_shasum":"3bc6d101155c155cf5699b08a792c0521cee03cb","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"3bc6d101155c155cf5699b08a792c0521cee03cb","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-1.0.0.tgz"},"directories":{}},"2.0.0":{"name":"atom-space-pen-views","version":"2.0.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^1.0.0","space-pen":"^5.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"f2cebf47e493a22cc1f7041f13ec305978e35719","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@2.0.0","_shasum":"d77f43d9e136a207a7c4f19e1fe5a3e80c671826","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"d77f43d9e136a207a7c4f19e1fe5a3e80c671826","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.0.0.tgz"},"directories":{}},"2.0.1":{"name":"atom-space-pen-views","version":"2.0.1","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^1.0.0","space-pen":"^5.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"dd6e395ec8352ecd21aca8e36ac19f3dfff15ada","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@2.0.1","_shasum":"0a86e99d434c38ceaf7c35bb9036e8119b926f9a","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"0a86e99d434c38ceaf7c35bb9036e8119b926f9a","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.0.1.tgz"},"directories":{}},"2.0.2":{"name":"atom-space-pen-views","version":"2.0.2","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^1.0.0","space-pen":"^5.0.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"c02b4aa42e8ebb0146ec6bb9c2808d21ea5afa93","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@2.0.2","_shasum":"b1fc5ec4e73964fad126df153980c15223a4b6ea","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"b1fc5ec4e73964fad126df153980c15223a4b6ea","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.0.2.tgz"},"directories":{}},"2.0.3":{"name":"atom-space-pen-views","version":"2.0.3","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{"prepublish":"grunt clean lint coffee"},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^1.0.0","space-pen":"^5.0.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"dc797a4547ca94429bdec8fd1ad3f573ae179f80","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@2.0.3","_shasum":"1310bd62459d7694a5939ff5ec3c62b060bae587","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"1310bd62459d7694a5939ff5ec3c62b060bae587","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.0.3.tgz"},"directories":{}},"2.0.4":{"name":"atom-space-pen-views","version":"2.0.4","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{"prepublish":"grunt clean lint coffee"},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^1.0.0","space-pen":"^5.0.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"c05388fe0988421c3400180a1df7b73ddc055ffa","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@2.0.4","_shasum":"9ce135c57fd762d39c1afcd1540a59f6947a25c7","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"9ce135c57fd762d39c1afcd1540a59f6947a25c7","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.0.4.tgz"},"directories":{}},"2.0.5":{"name":"atom-space-pen-views","version":"2.0.5","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{"prepublish":"grunt clean lint coffee"},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","space-pen":"^5.0.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"0e5fc262cc62d453bbd6dce9ecaec5caddc553f9","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@2.0.5","_shasum":"4ef545a6ef396c8342717b0d9d2569577a2651f4","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"4ef545a6ef396c8342717b0d9d2569577a2651f4","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.0.5.tgz"},"directories":{}}},"readme":"# Atom SpacePen Views [![Build Status](https://travis-ci.org/atom/atom-space-pen-views.svg?branch=master)](https://travis-ci.org/atom/atom-space-pen-views)\n\nThis library contains SpacePen views that used to be provided as part of Atom\nCore. `TextEditorView`, `SelectListView`, and `ScrollView` exports from the\n`atom` module are now deprecated will soon be removed, but can still be used in\npackages by depending on this library in your `package.json`.\n\n## TextEditorView\n\nA text editor can now be created in Atom by inserting an `<atom-text-editor>`\ntag in any location you want an editor. However, if you still want to use the\nSpacePen view in order to conveniently convert packages off the deprecated\nexport, you can use this class.\n\n### Example\n\n```coffee\n{View} = require 'space-pen'\n{TextEditorView} = require 'atom-space-pen-views'\n\nclass MyView extends View\n  @content: ->\n    @div =>\n      @div \"Type your answer:\"\n      @subview 'answer', new TextEditorView(mini: true)\n```\n\n### Constructor Params\n\nPass an optional params object to the constructor with the following keys:\n\n* `mini` If `true`, will construct a single-line editor for use as an input\n    field.\n* `placeholderText` A string of placeholder text to appear in the editor when\n    empty\n\n### Methods\n\n#### `::getModel`\n\nReturns the underlying `TextEditor` model instance.\n\n## ScrollView\n\n Handles several core events to update scroll position:\n\n * `core:move-up` Scrolls the view up\n * `core:move-down` Scrolls the view down\n * `core:page-up` Scrolls the view up by the height of the page\n * `core:page-down` Scrolls the view down by the height of the page\n * `core:move-to-top` Scrolls the editor to the top\n * `core:move-to-bottom` Scroll the editor to the bottom\n\n Subclasses must call `super` if overriding the `initialize` method.\n\n### Example\n\n ```coffee\n {ScrollView} = require 'atom-space-pen-views'\n\n class MyView extends ScrollView\n   @content: ->\n     @div()\n\n   initialize: ->\n     super\n     @text('super long content that will scroll')\n ```\n\n## SelectListView\n\nEssential: Provides a view that renders a list of items with an editor that\nfilters the items. Used by many packages such as the fuzzy-finder,\ncommand-palette, symbols-view and autocomplete.\n\n\n### Example\n\n```coffee\n{SelectListView} = require 'atom-space-pen-views'\n\nclass MySelectListView extends SelectListView\n initialize: ->\n   super\n   @addClass('overlay from-top')\n   @setItems(['Hello', 'World'])\n   atom.workspaceView.append(this)\n   @focusFilterEditor()\n\n viewForItem: (item) ->\n   \"<li>#{item}</li>\"\n\n confirmed: (item) ->\n   console.log(\"#{item} was selected\")\n```\n\n## Methods\n\n### Subclasses Must Implement\n\n#### `::viewForItem`\n\nCreate a view for the given model item. This method must be overridden by\nsubclasses. Called when the item is about to appended to the list view.\n\n* `item` The model item being rendered. This will always be one of the items\n  previously passed to `::setItems`.\n\nReturns a String of HTML, DOM element, jQuery object, or View.\n\n#### `::confirmed`\n\nCallback function for when an item is selected. This method must\nbe overridden by subclasses.\n\n* `item` The selected model item. This will always be one of the items\n  previously passed to `::setItems`.\n\nReturns a DOM element, jQuery object, or {View}.\n\n### Managing the list of items\n\n#### `::setItems`\n\nSet the array of items to display in the list. This should be\nmodel items, not actual views. `::viewForItem` will be called to render the\nitem when it is being appended to the list view.\n\n* `items` The array of model items to display in the list (default: []).\n\n#### `::getSelectedItem`\n\nGet the model item that is currently selected in the list view.\n\n#### `::getFilterKey`\n\nGet the property name to use when filtering items.\n\nThis method may be overridden by classes to allow fuzzy filtering based\non a specific property of the item objects.\n\nFor example if the objects you pass to {::setItems} are of the type\n`{\"id\": 3, \"name\": \"Atom\"}` then you would return `\"name\"` from this method\nto fuzzy filter by that property when text is entered into this view's\neditor.\n\n\n#### `::getFilterQuery`\n\nGet the filter query to use when fuzzy filtering the visible elements.\n\nBy default this method returns the text in the mini editor but it can be\noverridden by subclasses if needed.\n\nReturns a {String} to use when fuzzy filtering the elements to display.\n\n\n#### `::setMaxItems`\n\nSet the maximum numbers of items to display in the list.\n\nThis should be called before `setItems` is called or else the first time the\nlist displays it will include all the items.\n\n* `maxItems` The maximum {Number} of items to display.\n\n#### `::populateList`\n\nExtended: Populate the list view with the model items previously set by calling\n{::setItems}.\n\nSubclasses may override this method but should always call `super`.\n\n### Messages\n\n#### `::setError`\n\nSet the error message to display.\n\n* `message` A string with an error message (default: '').\n\n#### `::setLoading`\n\nSet the loading message to display.\n\n* `message` A string with a loading message (default: '').\n\n#### `::getEmptyMessage`\n\nGet the message to display when there are no items.\n\nSubclasses may override this method to customize the message.\n\n* `itemCount` The {Number} of items in the array specified to {::setItems}\n* `filteredItemCount` The {Number} of items that pass the fuzzy filter test.\n\nReturns a {String} message (default: 'No matches found').\n\n### View Actions\n\n#### `::cancel`\n\nCancel and close this select list view.\n\nThis restores focus to the previously focused element if `::storeFocusedElement`\nwas called prior to this view being attached.\n\n#### `::focusFilterEditor`\n\nFocus the fuzzy filter editor view.\n\n#### `::storeFocusedElement`\n\nStore the currently focused element. This element will be given back focus when\n`::cancel` is called.\n","maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"time":{"modified":"2015-03-31T00:04:41.621Z","created":"2014-10-30T23:24:27.236Z","0.1.0":"2014-10-30T23:24:27.236Z","0.2.0":"2014-10-30T23:29:35.034Z","0.3.0":"2014-10-30T23:39:12.785Z","0.4.0":"2014-10-30T23:56:59.961Z","0.5.0":"2014-11-03T18:31:14.337Z","0.6.0":"2014-11-03T18:41:23.043Z","0.7.0":"2014-11-03T20:42:13.644Z","0.8.0":"2014-11-04T00:24:02.201Z","0.9.0":"2014-11-04T00:37:49.282Z","0.10.0":"2014-11-04T00:47:57.304Z","0.11.0":"2014-11-04T01:03:56.279Z","0.13.0":"2014-11-06T21:13:16.872Z","0.14.0":"2014-11-10T15:31:09.171Z","0.15.0":"2014-11-10T16:41:57.875Z","0.16.0":"2014-11-25T15:32:18.949Z","0.17.0":"2014-11-25T15:39:19.263Z","0.18.0":"2014-11-25T16:10:56.727Z","0.19.0":"2014-11-25T16:55:01.824Z","0.20.0":"2014-11-25T17:23:07.572Z","0.21.0":"2014-12-10T02:57:37.281Z","1.0.0":"2015-01-02T19:36:56.106Z","2.0.0":"2015-01-05T18:09:18.374Z","2.0.1":"2015-01-06T19:16:25.450Z","2.0.2":"2015-01-06T19:28:01.724Z","2.0.3":"2015-01-07T19:09:21.297Z","2.0.4":"2015-02-13T00:43:59.838Z","2.0.5":"2015-03-31T00:04:41.621Z"},"homepage":"https://github.com/atom/atom-space-pen-views","repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"readmeFilename":"README.md","users":{},"_attachments":{},"_etag":"\"XF3LP3NYB5YFNCOS8DOQ6RF9\""}
\ No newline at end of file
+{"_id":"atom-space-pen-views","_rev":"59-5a6231206b0af6c3dabf7120acc5719e","name":"atom-space-pen-views","description":"Atom SpacePen views that used to live in core.","dist-tags":{"latest":"2.1.0"},"versions":{"0.1.0":{"name":"atom-space-pen-views","version":"0.1.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"29922807a4258c6d557e467f34058c096bb2eb60","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.1.0","_shasum":"6a8541ac5611342fe3bd01470d0cabc939393681","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"6a8541ac5611342fe3bd01470d0cabc939393681","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.1.0.tgz"},"directories":{}},"0.2.0":{"name":"atom-space-pen-views","version":"0.2.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"035792c8593c2f706b310b6d955e18768417ae44","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.2.0","_shasum":"773624b339095a9c863456fbcf4cae178c4d4c2d","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"773624b339095a9c863456fbcf4cae178c4d4c2d","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.2.0.tgz"},"directories":{}},"0.3.0":{"name":"atom-space-pen-views","version":"0.3.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"5e3aba1b73fd45dc3e6f6c1acb0fad06b9331e6e","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.3.0","_shasum":"2263070c26f7915aa52fd874a2283e328597e624","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"2263070c26f7915aa52fd874a2283e328597e624","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.3.0.tgz"},"directories":{}},"0.4.0":{"name":"atom-space-pen-views","version":"0.4.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"d0aa5125bfa38cce2c2d8fad86a48c80ad2bdd07","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.4.0","_shasum":"9693e927fe2e0ab7ff07322d0ee78b9b57d6fc03","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"9693e927fe2e0ab7ff07322d0ee78b9b57d6fc03","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.4.0.tgz"},"directories":{}},"0.5.0":{"name":"atom-space-pen-views","version":"0.5.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"4ce324415be18d81c2f06958abd98a659e018ac9","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.5.0","_shasum":"dda2aca056bf103fda54627788a63142ccffed62","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"dda2aca056bf103fda54627788a63142ccffed62","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.5.0.tgz"},"directories":{}},"0.6.0":{"name":"atom-space-pen-views","version":"0.6.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"4d61d5ce459a7ba072f02974d1d148080363969d","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.6.0","_shasum":"d931e3c683a9b0e157a693df3dde537d8f8c1b06","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"d931e3c683a9b0e157a693df3dde537d8f8c1b06","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.6.0.tgz"},"directories":{}},"0.7.0":{"name":"atom-space-pen-views","version":"0.7.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"331cf48490a698e265686ac10031ee9f34f29742","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.7.0","_shasum":"1f2a948d7e942bd0a53d9d60cf59a10d2f7a9b32","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"1f2a948d7e942bd0a53d9d60cf59a10d2f7a9b32","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.7.0.tgz"},"directories":{}},"0.8.0":{"name":"atom-space-pen-views","version":"0.8.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.0.2"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"776c0eb0f9b960e1bba4b2ba66f0a4dcfab401b9","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.8.0","_shasum":"7cfa29e38bef0390c70d9fb6e87939fa2b43d9e7","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"7cfa29e38bef0390c70d9fb6e87939fa2b43d9e7","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.8.0.tgz"},"directories":{}},"0.9.0":{"name":"atom-space-pen-views","version":"0.9.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"9aa6450e515b1c2aeffc459156e9a08073cbd288","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.9.0","_shasum":"5a99ee4ac1608db8d92787e591199b2d5a4fa39d","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"5a99ee4ac1608db8d92787e591199b2d5a4fa39d","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.9.0.tgz"},"directories":{}},"0.10.0":{"name":"atom-space-pen-views","version":"0.10.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"bf496a8fa1ba7e88a7c590f4790c148bd861db29","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.10.0","_shasum":"3efed9951f8e27ecd9da4b7c6a53d3f1e47f654e","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"3efed9951f8e27ecd9da4b7c6a53d3f1e47f654e","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.10.0.tgz"},"directories":{}},"0.11.0":{"name":"atom-space-pen-views","version":"0.11.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"d3244a2a9f39031a73e70372ecd2fd64a200f11f","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.11.0","_shasum":"4963b92de3a13fc8172bb5ac5437e31e24346b6f","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"4963b92de3a13fc8172bb5ac5437e31e24346b6f","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.11.0.tgz"},"directories":{}},"0.13.0":{"name":"atom-space-pen-views","version":"0.13.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"742768be175def710419462b7b7d1785bb99055f","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.13.0","_shasum":"264c63d3667fa39bbeff5b354dae8da4a6f1fa17","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"264c63d3667fa39bbeff5b354dae8da4a6f1fa17","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.13.0.tgz"},"directories":{}},"0.14.0":{"name":"atom-space-pen-views","version":"0.14.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"be449b1435bafa5ed458d6517de5c5f28c97fbcb","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.14.0","_shasum":"55251cfee4611949a976f0bcae75b2fc89064d11","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"55251cfee4611949a976f0bcae75b2fc89064d11","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.14.0.tgz"},"directories":{}},"0.15.0":{"name":"atom-space-pen-views","version":"0.15.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"38d1b933d8c287f429e25494e2f82d790443a2a3","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.15.0","_shasum":"594a656d4593c1af2062a97f1219005d8d311021","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"dist":{"shasum":"594a656d4593c1af2062a97f1219005d8d311021","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.15.0.tgz"},"directories":{}},"0.16.0":{"name":"atom-space-pen-views","version":"0.16.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"65ba384aa1094c0ac07a89f524ae0daa40dc1a87","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.16.0","_shasum":"73ce03fb582e9af608c47499ba84e63a9ce844e3","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"73ce03fb582e9af608c47499ba84e63a9ce844e3","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.16.0.tgz"},"directories":{}},"0.17.0":{"name":"atom-space-pen-views","version":"0.17.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.1.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"50a16d5424f6564146957e84e4a66d8465ff345c","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.17.0","_shasum":"575acc87821cf55b0584f4cec0e44f1323f49cf2","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"575acc87821cf55b0584f4cec0e44f1323f49cf2","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.17.0.tgz"},"directories":{}},"0.18.0":{"name":"atom-space-pen-views","version":"0.18.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.2.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"c4dcae1e5c0591665a99a453ced1a215acf0d878","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.18.0","_shasum":"d7e372e1c327bb35ef5496c8adddfa8a242d71eb","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"d7e372e1c327bb35ef5496c8adddfa8a242d71eb","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.18.0.tgz"},"directories":{}},"0.19.0":{"name":"atom-space-pen-views","version":"0.19.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.2.2"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"8da5806990d2c6fce6e1d02b4842ec38c2767c0c","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.19.0","_shasum":"31ddba42745fa63ddc6f23cefc3bd1aae281bc8f","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"31ddba42745fa63ddc6f23cefc3bd1aae281bc8f","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.19.0.tgz"},"directories":{}},"0.20.0":{"name":"atom-space-pen-views","version":"0.20.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.2.2"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"cbb2f0d2e1b3295f5a56388fdd61850ccf1b531f","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.20.0","_shasum":"552401bc4324a85772b20e96aac0a4650be937de","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"552401bc4324a85772b20e96aac0a4650be937de","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.20.0.tgz"},"directories":{}},"0.21.0":{"name":"atom-space-pen-views","version":"0.21.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^0.12.0","space-pen":"^4.3.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"c9d2dff2aa5d3acc89b5ab16ad2b69721c6d0034","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@0.21.0","_shasum":"4a281b0c795e4e06c9728fb7470d2e5314a50424","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"4a281b0c795e4e06c9728fb7470d2e5314a50424","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-0.21.0.tgz"},"directories":{}},"1.0.0":{"name":"atom-space-pen-views","version":"1.0.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^1.0.0","space-pen":"^4.3.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"728ed56a53c322336e8f9ca0953863057d3c46e6","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@1.0.0","_shasum":"3bc6d101155c155cf5699b08a792c0521cee03cb","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"3bc6d101155c155cf5699b08a792c0521cee03cb","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-1.0.0.tgz"},"directories":{}},"2.0.0":{"name":"atom-space-pen-views","version":"2.0.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^1.0.0","space-pen":"^5.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"f2cebf47e493a22cc1f7041f13ec305978e35719","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@2.0.0","_shasum":"d77f43d9e136a207a7c4f19e1fe5a3e80c671826","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"d77f43d9e136a207a7c4f19e1fe5a3e80c671826","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.0.0.tgz"},"directories":{}},"2.0.1":{"name":"atom-space-pen-views","version":"2.0.1","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^1.0.0","space-pen":"^5.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"dd6e395ec8352ecd21aca8e36ac19f3dfff15ada","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@2.0.1","_shasum":"0a86e99d434c38ceaf7c35bb9036e8119b926f9a","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"0a86e99d434c38ceaf7c35bb9036e8119b926f9a","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.0.1.tgz"},"directories":{}},"2.0.2":{"name":"atom-space-pen-views","version":"2.0.2","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^1.0.0","space-pen":"^5.0.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"c02b4aa42e8ebb0146ec6bb9c2808d21ea5afa93","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@2.0.2","_shasum":"b1fc5ec4e73964fad126df153980c15223a4b6ea","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"b1fc5ec4e73964fad126df153980c15223a4b6ea","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.0.2.tgz"},"directories":{}},"2.0.3":{"name":"atom-space-pen-views","version":"2.0.3","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{"prepublish":"grunt clean lint coffee"},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^1.0.0","space-pen":"^5.0.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"dc797a4547ca94429bdec8fd1ad3f573ae179f80","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@2.0.3","_shasum":"1310bd62459d7694a5939ff5ec3c62b060bae587","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"1310bd62459d7694a5939ff5ec3c62b060bae587","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.0.3.tgz"},"directories":{}},"2.0.4":{"name":"atom-space-pen-views","version":"2.0.4","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{"prepublish":"grunt clean lint coffee"},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","grim":"^1.0.0","space-pen":"^5.0.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"c05388fe0988421c3400180a1df7b73ddc055ffa","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@2.0.4","_shasum":"9ce135c57fd762d39c1afcd1540a59f6947a25c7","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"9ce135c57fd762d39c1afcd1540a59f6947a25c7","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.0.4.tgz"},"directories":{}},"2.0.5":{"name":"atom-space-pen-views","version":"2.0.5","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{"prepublish":"grunt clean lint coffee"},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","space-pen":"^5.0.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"0e5fc262cc62d453bbd6dce9ecaec5caddc553f9","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@2.0.5","_shasum":"4ef545a6ef396c8342717b0d9d2569577a2651f4","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"4ef545a6ef396c8342717b0d9d2569577a2651f4","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.0.5.tgz"},"directories":{}},"2.1.0":{"name":"atom-space-pen-views","version":"2.1.0","description":"Atom SpacePen views that used to live in core.","main":"./lib/main","scripts":{"prepublish":"grunt clean lint coffee"},"repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/atom-space-pen-views/raw/master/LICENSE.md"}],"dependencies":{"fuzzaldrin":"^2.1.0","space-pen":"^5.0.1"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"75ccee886e723a7a4913a4286e089225eec8834d","homepage":"https://github.com/atom/atom-space-pen-views","_id":"atom-space-pen-views@2.1.0","_shasum":"688e73a04a1cc0f5a41c254c6875e72d58faffb1","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"benogle","email":"ogle.ben@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"688e73a04a1cc0f5a41c254c6875e72d58faffb1","tarball":"http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.1.0.tgz"},"directories":{}}},"readme":"# Atom SpacePen Views [![Build Status](https://travis-ci.org/atom/atom-space-pen-views.svg?branch=master)](https://travis-ci.org/atom/atom-space-pen-views)\n\nThis library contains SpacePen views that used to be provided as part of Atom\nCore. `TextEditorView`, `SelectListView`, and `ScrollView` exports from the\n`atom` module are now deprecated will soon be removed, but can still be used in\npackages by depending on this library in your `package.json`.\n\n## TextEditorView\n\nA text editor can now be created in Atom by inserting an `<atom-text-editor>`\ntag in any location you want an editor. However, if you still want to use the\nSpacePen view in order to conveniently convert packages off the deprecated\nexport, you can use this class.\n\n### Example\n\n```coffee\n{View} = require 'space-pen'\n{TextEditorView} = require 'atom-space-pen-views'\n\nclass MyView extends View\n  @content: ->\n    @div =>\n      @div \"Type your answer:\"\n      @subview 'answer', new TextEditorView(mini: true)\n```\n\n### Constructor Params\n\nPass an optional params object to the constructor with the following keys:\n\n* `mini` If `true`, will construct a single-line editor for use as an input\n    field.\n* `placeholderText` A string of placeholder text to appear in the editor when\n    empty\n\n### Methods\n\n#### `::getModel`\n\nReturns the underlying `TextEditor` model instance.\n\n## ScrollView\n\n Handles several core events to update scroll position:\n\n * `core:move-up` Scrolls the view up\n * `core:move-down` Scrolls the view down\n * `core:page-up` Scrolls the view up by the height of the page\n * `core:page-down` Scrolls the view down by the height of the page\n * `core:move-to-top` Scrolls the editor to the top\n * `core:move-to-bottom` Scroll the editor to the bottom\n\n Subclasses must call `super` if overriding the `initialize` method.\n\n### Example\n\n ```coffee\n {ScrollView} = require 'atom-space-pen-views'\n\n class MyView extends ScrollView\n   @content: ->\n     @div()\n\n   initialize: ->\n     super\n     @text('super long content that will scroll')\n ```\n\n## SelectListView\n\nEssential: Provides a view that renders a list of items with an editor that\nfilters the items. Used by many packages such as the fuzzy-finder,\ncommand-palette, symbols-view and autocomplete.\n\n\n### Example\n\n```coffee\n{SelectListView} = require 'atom-space-pen-views'\n\nclass MySelectListView extends SelectListView\n initialize: ->\n   super\n   @addClass('overlay from-top')\n   @setItems(['Hello', 'World'])\n   @panel ?= atom.workspace.addModalPanel(item: this) \n   @panel.show()\n   @focusFilterEditor()\n\n viewForItem: (item) ->\n   \"<li>#{item}</li>\"\n\n confirmed: (item) ->\n   console.log(\"#{item} was selected\")\n   \n cancelled: ->\n   console.log(\"This view was cancelled\")\n```\n\n## Methods\n\n### Subclasses Must Implement\n\n#### `::viewForItem`\n\nCreate a view for the given model item. This method must be overridden by\nsubclasses. Called when the item is about to appended to the list view.\n\n* `item` The model item being rendered. This will always be one of the items\n  previously passed to `::setItems`.\n\nReturns a String of HTML, DOM element, jQuery object, or View. Note the root element must be an `li`.\n\n#### `::confirmed`\n\nCallback function for when an item is selected. This method must\nbe overridden by subclasses.\n\n* `item` The selected model item. This will always be one of the items\n  previously passed to `::setItems`.\n\nReturns a DOM element, jQuery object, or {View}.\n\n### Managing the list of items\n\n#### `::setItems`\n\nSet the array of items to display in the list. This should be\nmodel items, not actual views. `::viewForItem` will be called to render the\nitem when it is being appended to the list view.\n\n* `items` The array of model items to display in the list (default: []).\n\n#### `::getSelectedItem`\n\nGet the model item that is currently selected in the list view.\n\n#### `::getFilterKey`\n\nGet the property name to use when filtering items.\n\nThis method may be overridden by classes to allow fuzzy filtering based\non a specific property of the item objects.\n\nFor example if the objects you pass to {::setItems} are of the type\n`{\"id\": 3, \"name\": \"Atom\"}` then you would return `\"name\"` from this method\nto fuzzy filter by that property when text is entered into this view's\neditor.\n\n\n#### `::getFilterQuery`\n\nGet the filter query to use when fuzzy filtering the visible elements.\n\nBy default this method returns the text in the mini editor but it can be\noverridden by subclasses if needed.\n\nReturns a {String} to use when fuzzy filtering the elements to display.\n\n\n#### `::setMaxItems`\n\nSet the maximum numbers of items to display in the list.\n\nThis should be called before `setItems` is called or else the first time the\nlist displays it will include all the items.\n\n* `maxItems` The maximum {Number} of items to display.\n\n#### `::populateList`\n\nExtended: Populate the list view with the model items previously set by calling\n{::setItems}.\n\nSubclasses may override this method but should always call `super`.\n\n### Messages\n\n#### `::setError`\n\nSet the error message to display.\n\n* `message` A string with an error message (default: '').\n\n#### `::setLoading`\n\nSet the loading message to display.\n\n* `message` A string with a loading message (default: '').\n\n#### `::getEmptyMessage`\n\nGet the message to display when there are no items.\n\nSubclasses may override this method to customize the message.\n\n* `itemCount` The {Number} of items in the array specified to {::setItems}\n* `filteredItemCount` The {Number} of items that pass the fuzzy filter test.\n\nReturns a {String} message (default: 'No matches found').\n\n### View Actions\n\n#### `::cancel`\n\nCancel and close this select list view.\n\nThis restores focus to the previously focused element if `::storeFocusedElement`\nwas called prior to this view being attached.\n\n#### `::focusFilterEditor`\n\nFocus the fuzzy filter editor view.\n\n#### `::storeFocusedElement`\n\nStore the currently focused element. This element will be given back focus when\n`::cancel` is called.\n","maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"time":{"modified":"2015-08-10T21:56:23.754Z","created":"2014-10-30T23:24:27.236Z","0.1.0":"2014-10-30T23:24:27.236Z","0.2.0":"2014-10-30T23:29:35.034Z","0.3.0":"2014-10-30T23:39:12.785Z","0.4.0":"2014-10-30T23:56:59.961Z","0.5.0":"2014-11-03T18:31:14.337Z","0.6.0":"2014-11-03T18:41:23.043Z","0.7.0":"2014-11-03T20:42:13.644Z","0.8.0":"2014-11-04T00:24:02.201Z","0.9.0":"2014-11-04T00:37:49.282Z","0.10.0":"2014-11-04T00:47:57.304Z","0.11.0":"2014-11-04T01:03:56.279Z","0.13.0":"2014-11-06T21:13:16.872Z","0.14.0":"2014-11-10T15:31:09.171Z","0.15.0":"2014-11-10T16:41:57.875Z","0.16.0":"2014-11-25T15:32:18.949Z","0.17.0":"2014-11-25T15:39:19.263Z","0.18.0":"2014-11-25T16:10:56.727Z","0.19.0":"2014-11-25T16:55:01.824Z","0.20.0":"2014-11-25T17:23:07.572Z","0.21.0":"2014-12-10T02:57:37.281Z","1.0.0":"2015-01-02T19:36:56.106Z","2.0.0":"2015-01-05T18:09:18.374Z","2.0.1":"2015-01-06T19:16:25.450Z","2.0.2":"2015-01-06T19:28:01.724Z","2.0.3":"2015-01-07T19:09:21.297Z","2.0.4":"2015-02-13T00:43:59.838Z","2.0.5":"2015-03-31T00:04:41.621Z","2.1.0":"2015-08-10T21:56:23.754Z"},"homepage":"https://github.com/atom/atom-space-pen-views","repository":{"type":"git","url":"https://github.com/atom/atom-space-pen-views.git"},"bugs":{"url":"https://github.com/atom/atom-space-pen-views/issues"},"readmeFilename":"README.md","users":{},"_attachments":{},"_etag":"\"42Q3IIJVV3ACFOQ59ZPOS86QI\""}
\ No newline at end of file
index fac90551c1af4da1494079d18bc1c98fdedb6084..f603324c2ae051b1b807cb2fb868be18b16abd58 100644 (file)
@@ -1 +1 @@
-{"_id":"es6-weak-map","_rev":"15-5b44f564c5df0da0d4b7738ae0e0733c","name":"es6-weak-map","description":"ECMAScript6 WeakMap polyfill","dist-tags":{"latest":"1.0.2"},"versions":{"0.0.0":{"name":"es6-weak-map","version":"0.0.0","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"scripts":{"test":"node ./node_modules/tad/bin/tad"},"dependencies":{"d":"git://github.com/medikoo/d.git","es5-ext":"git://github.com/medikoo/es5-ext.git","es6-iterator":"git://github.com/medikoo/es6-iterator.git","time-uuid":"git://github.com/medikoo/time-uuid.git"},"devDependencies":{"tad":"~0.1.19"},"license":"MIT","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"_id":"es6-weak-map@0.0.0","dist":{"shasum":"7d265054c646afc718dd8604a530fd6d1841e2ab","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.0.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"directories":{}},"0.1.0":{"name":"es6-weak-map","version":"0.1.0","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"~0.1.1","es5-ext":"~0.10.2","es6-iterator":"~0.1.1","es6-symbol":"0.1.x","time-uuid":"0.2.x"},"devDependencies":{"tad":"0.2.x"},"scripts":{"test":"node ./node_modules/tad/bin/tad"},"license":"MIT","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@0.1.0","dist":{"shasum":"c8084318cc9aec498a9af3f62dbb74dc67b61c1f","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"directories":{}},"0.1.1":{"name":"es6-weak-map","version":"0.1.1","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"~0.1.1","es5-ext":"~0.10.4","es6-iterator":"~0.1.1","es6-symbol":"0.1.x","time-uuid":"~0.2.1"},"devDependencies":{"tad":"0.2.x"},"scripts":{"test":"node ./node_modules/tad/bin/tad"},"license":"MIT","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@0.1.1","_shasum":"e5215968ba23c59c57559058d5350453dc2f46f6","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"dist":{"shasum":"e5215968ba23c59c57559058d5350453dc2f46f6","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.1.tgz"},"directories":{}},"0.1.2":{"name":"es6-weak-map","version":"0.1.2","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"~0.1.1","es5-ext":"~0.10.4","es6-iterator":"~0.1.1","es6-symbol":"0.1.x"},"devDependencies":{"tad":"0.2.x"},"scripts":{"test":"node ./node_modules/tad/bin/tad"},"license":"MIT","gitHead":"f533102fc6d79889bda099fb94f1158cff2b6517","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@0.1.2","_shasum":"bc5b5fab73f68f6f77a6b39c481fce3d7856d385","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"dist":{"shasum":"bc5b5fab73f68f6f77a6b39c481fce3d7856d385","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.2.tgz"},"directories":{}},"0.1.3":{"name":"es6-weak-map","version":"0.1.3","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"~0.1.1","es5-ext":"~0.10.6","es6-iterator":"~0.1.3","es6-symbol":"~2.0.1"},"devDependencies":{"tad":"~0.2.2","xlint":"~0.2.2","xlint-jslint-medikoo":"~0.1.2"},"scripts":{"lint":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream","lint-console":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch","test":"node ./node_modules/tad/bin/tad"},"license":"MIT","gitHead":"426b350ff12e90741cf0c42a0c09edc460d6f825","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@0.1.3","_shasum":"5d3f509d2a422a309504ea00620b01095b67b6d7","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"dist":{"shasum":"5d3f509d2a422a309504ea00620b01095b67b6d7","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.3.tgz"},"directories":{}},"0.1.4":{"name":"es6-weak-map","version":"0.1.4","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"~0.1.1","es5-ext":"~0.10.6","es6-iterator":"~0.1.3","es6-symbol":"~2.0.1"},"devDependencies":{"tad":"~0.2.2"},"scripts":{"test":"node ./node_modules/tad/bin/tad"},"license":"MIT","gitHead":"e68802395b82a700257374c379cfaafe84ee8552","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@0.1.4","_shasum":"706cef9e99aa236ba7766c239c8b9e286ea7d228","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"dist":{"shasum":"706cef9e99aa236ba7766c239c8b9e286ea7d228","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz"},"directories":{}},"1.0.0":{"name":"es6-weak-map","version":"1.0.0","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"^0.1.1","es5-ext":"^0.10.6","es6-iterator":"^0.1.3","es6-symbol":"^2.0.1"},"devDependencies":{"tad":"^0.2.2","xlint":"^0.2.2","xlint-jslint-medikoo":"^0.1.2"},"scripts":{"lint":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream","lint-console":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch","test":"node ./node_modules/tad/bin/tad"},"license":"MIT","gitHead":"45275c27e25ecff3348557962537ea88532fb021","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@1.0.0","_shasum":"e73486473278e4041fbf65e5517768cfedf300d3","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"dist":{"shasum":"e73486473278e4041fbf65e5517768cfedf300d3","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-1.0.0.tgz"},"directories":{}},"1.0.1":{"name":"es6-weak-map","version":"1.0.1","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"^0.1.1","es5-ext":"^0.10.6","es6-iterator":"^0.1.3","es6-symbol":"^2.0.1"},"devDependencies":{"tad":"^0.2.2","xlint":"^0.2.2","xlint-jslint-medikoo":"^0.1.2"},"scripts":{"lint":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream","lint-console":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch","test":"node ./node_modules/tad/bin/tad"},"license":"MIT","gitHead":"9cba09eac70d69c70e25af5490501e8d69bcf23d","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@1.0.1","_shasum":"c68cd1cf5ab76011d6e4210c685c064eeea37b38","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"dist":{"shasum":"c68cd1cf5ab76011d6e4210c685c064eeea37b38","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-1.0.1.tgz"},"directories":{}},"1.0.2":{"name":"es6-weak-map","version":"1.0.2","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc","ponyfill"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"^0.1.1","es5-ext":"^0.10.6","es6-iterator":"^0.1.3","es6-symbol":"^2.0.1"},"devDependencies":{"tad":"^0.2.2","xlint":"^0.2.2","xlint-jslint-medikoo":"^0.1.2"},"scripts":{"lint":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream","lint-console":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch","test":"node ./node_modules/tad/bin/tad"},"license":"MIT","gitHead":"8ebc1ccea67efc57081ac66024e4e28a88e64558","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@1.0.2","_shasum":"769cbb261cc54bc70841536d136121f1bacb00cf","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"dist":{"shasum":"769cbb261cc54bc70841536d136121f1bacb00cf","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-1.0.2.tgz"},"directories":{}}},"readme":"# es6-weak-map\n## WeakMap collection as specified in ECMAScript6\n\n_Roughly inspired by Mark Miller's and Kris Kowal's [WeakMap implementation](https://github.com/drses/weak-map)_.\n\nDifferences are:\n- Assumes compliant ES5 environment (no weird ES3 workarounds or hacks)\n- Well modularized CJS style\n- Based on one solution.\n\n### Limitations\n\n- Will fail on non extensible objects provided as keys\n\n### Installation\n\n\t$ npm install es6-weak-map\n\nTo port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)\n\n### Usage\n\nIf you want to make sure your environment implements `WeakMap`, do:\n\n```javascript\nrequire('es6-weak-map/implement');\n```\n\nIf you'd like to use native version when it exists and fallback to polyfill if it doesn't, but without implementing `WeakMap` on global scope, do:\n\n```javascript\nvar WeakMap = require('es6-weak-map');\n```\n\nIf you strictly want to use polyfill even if native `WeakMap` exists, do:\n\n```javascript\nvar WeakMap = require('es6-weak-map/polyfill');\n```\n\n#### API\n\nBest is to refer to [specification](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-weakmap-objects). Still if you want quick look, follow example:\n\n```javascript\nvar WeakMap = require('es6-weak-map');\n\nvar map = new WeakMap();\nvar obj = {};\n\nmap.set(obj, 'foo'); // map\nmap.get(obj);        // 'foo'\nmap.has(obj);        // true\nmap.delete(obj);     // true\nmap.get(obj);        // undefined\nmap.has(obj);        // false\nmap.set(obj, 'bar'); // map\nmap.has(obj);        // false\n```\n\n## Tests [![Build Status](https://travis-ci.org/medikoo/es6-weak-map.svg)](https://travis-ci.org/medikoo/es6-weak-map)\n\n\t$ npm test\n","maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"time":{"modified":"2015-05-07T13:25:24.481Z","created":"2013-10-24T15:10:27.843Z","0.0.0":"2013-10-24T15:10:31.650Z","0.1.0":"2014-04-29T13:05:23.545Z","0.1.1":"2014-05-15T16:33:38.587Z","0.1.2":"2014-09-01T10:34:10.151Z","0.1.3":"2015-04-12T09:45:43.893Z","0.1.4":"2015-04-13T07:46:32.212Z","1.0.0":"2015-04-13T07:58:36.318Z","1.0.1":"2015-04-14T06:44:19.767Z","1.0.2":"2015-05-07T13:25:24.481Z"},"author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"homepage":"https://github.com/medikoo/es6-weak-map","keywords":["map","weakmap","collection","es6","harmony","list","hash","gc","ponyfill"],"bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"license":"MIT","readmeFilename":"README.md","users":{"fgribreau":true},"_attachments":{},"_etag":"\"DX7CQ4149DHD339E3GPIVH9W8\""}
\ No newline at end of file
+{"_id":"es6-weak-map","_rev":"16-65fc26ed016f1cb5fce26a066a040cf1","name":"es6-weak-map","description":"ECMAScript6 WeakMap polyfill","dist-tags":{"latest":"2.0.0"},"versions":{"0.0.0":{"name":"es6-weak-map","version":"0.0.0","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"scripts":{"test":"node ./node_modules/tad/bin/tad"},"dependencies":{"d":"git://github.com/medikoo/d.git","es5-ext":"git://github.com/medikoo/es5-ext.git","es6-iterator":"git://github.com/medikoo/es6-iterator.git","time-uuid":"git://github.com/medikoo/time-uuid.git"},"devDependencies":{"tad":"~0.1.19"},"license":"MIT","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"_id":"es6-weak-map@0.0.0","dist":{"shasum":"7d265054c646afc718dd8604a530fd6d1841e2ab","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.0.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"directories":{}},"0.1.0":{"name":"es6-weak-map","version":"0.1.0","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"~0.1.1","es5-ext":"~0.10.2","es6-iterator":"~0.1.1","es6-symbol":"0.1.x","time-uuid":"0.2.x"},"devDependencies":{"tad":"0.2.x"},"scripts":{"test":"node ./node_modules/tad/bin/tad"},"license":"MIT","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@0.1.0","dist":{"shasum":"c8084318cc9aec498a9af3f62dbb74dc67b61c1f","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"directories":{}},"0.1.1":{"name":"es6-weak-map","version":"0.1.1","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"~0.1.1","es5-ext":"~0.10.4","es6-iterator":"~0.1.1","es6-symbol":"0.1.x","time-uuid":"~0.2.1"},"devDependencies":{"tad":"0.2.x"},"scripts":{"test":"node ./node_modules/tad/bin/tad"},"license":"MIT","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@0.1.1","_shasum":"e5215968ba23c59c57559058d5350453dc2f46f6","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"dist":{"shasum":"e5215968ba23c59c57559058d5350453dc2f46f6","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.1.tgz"},"directories":{}},"0.1.2":{"name":"es6-weak-map","version":"0.1.2","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"~0.1.1","es5-ext":"~0.10.4","es6-iterator":"~0.1.1","es6-symbol":"0.1.x"},"devDependencies":{"tad":"0.2.x"},"scripts":{"test":"node ./node_modules/tad/bin/tad"},"license":"MIT","gitHead":"f533102fc6d79889bda099fb94f1158cff2b6517","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@0.1.2","_shasum":"bc5b5fab73f68f6f77a6b39c481fce3d7856d385","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"dist":{"shasum":"bc5b5fab73f68f6f77a6b39c481fce3d7856d385","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.2.tgz"},"directories":{}},"0.1.3":{"name":"es6-weak-map","version":"0.1.3","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"~0.1.1","es5-ext":"~0.10.6","es6-iterator":"~0.1.3","es6-symbol":"~2.0.1"},"devDependencies":{"tad":"~0.2.2","xlint":"~0.2.2","xlint-jslint-medikoo":"~0.1.2"},"scripts":{"lint":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream","lint-console":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch","test":"node ./node_modules/tad/bin/tad"},"license":"MIT","gitHead":"426b350ff12e90741cf0c42a0c09edc460d6f825","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@0.1.3","_shasum":"5d3f509d2a422a309504ea00620b01095b67b6d7","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"dist":{"shasum":"5d3f509d2a422a309504ea00620b01095b67b6d7","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.3.tgz"},"directories":{}},"0.1.4":{"name":"es6-weak-map","version":"0.1.4","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"~0.1.1","es5-ext":"~0.10.6","es6-iterator":"~0.1.3","es6-symbol":"~2.0.1"},"devDependencies":{"tad":"~0.2.2"},"scripts":{"test":"node ./node_modules/tad/bin/tad"},"license":"MIT","gitHead":"e68802395b82a700257374c379cfaafe84ee8552","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@0.1.4","_shasum":"706cef9e99aa236ba7766c239c8b9e286ea7d228","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"dist":{"shasum":"706cef9e99aa236ba7766c239c8b9e286ea7d228","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz"},"directories":{}},"1.0.0":{"name":"es6-weak-map","version":"1.0.0","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"^0.1.1","es5-ext":"^0.10.6","es6-iterator":"^0.1.3","es6-symbol":"^2.0.1"},"devDependencies":{"tad":"^0.2.2","xlint":"^0.2.2","xlint-jslint-medikoo":"^0.1.2"},"scripts":{"lint":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream","lint-console":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch","test":"node ./node_modules/tad/bin/tad"},"license":"MIT","gitHead":"45275c27e25ecff3348557962537ea88532fb021","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@1.0.0","_shasum":"e73486473278e4041fbf65e5517768cfedf300d3","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"dist":{"shasum":"e73486473278e4041fbf65e5517768cfedf300d3","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-1.0.0.tgz"},"directories":{}},"1.0.1":{"name":"es6-weak-map","version":"1.0.1","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"^0.1.1","es5-ext":"^0.10.6","es6-iterator":"^0.1.3","es6-symbol":"^2.0.1"},"devDependencies":{"tad":"^0.2.2","xlint":"^0.2.2","xlint-jslint-medikoo":"^0.1.2"},"scripts":{"lint":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream","lint-console":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch","test":"node ./node_modules/tad/bin/tad"},"license":"MIT","gitHead":"9cba09eac70d69c70e25af5490501e8d69bcf23d","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@1.0.1","_shasum":"c68cd1cf5ab76011d6e4210c685c064eeea37b38","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"dist":{"shasum":"c68cd1cf5ab76011d6e4210c685c064eeea37b38","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-1.0.1.tgz"},"directories":{}},"1.0.2":{"name":"es6-weak-map","version":"1.0.2","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc","ponyfill"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"^0.1.1","es5-ext":"^0.10.6","es6-iterator":"^0.1.3","es6-symbol":"^2.0.1"},"devDependencies":{"tad":"^0.2.2","xlint":"^0.2.2","xlint-jslint-medikoo":"^0.1.2"},"scripts":{"lint":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream","lint-console":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch","test":"node ./node_modules/tad/bin/tad"},"license":"MIT","gitHead":"8ebc1ccea67efc57081ac66024e4e28a88e64558","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map","_id":"es6-weak-map@1.0.2","_shasum":"769cbb261cc54bc70841536d136121f1bacb00cf","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"dist":{"shasum":"769cbb261cc54bc70841536d136121f1bacb00cf","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-1.0.2.tgz"},"directories":{}},"2.0.0":{"name":"es6-weak-map","version":"2.0.0","description":"ECMAScript6 WeakMap polyfill","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["map","weakmap","collection","es6","harmony","list","hash","gc","ponyfill"],"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"dependencies":{"d":"^0.1.1","es5-ext":"^0.10.7","es6-iterator":"1","es6-symbol":"^2.0.1"},"devDependencies":{"tad":"^0.2.3","xlint":"^0.2.2","xlint-jslint-medikoo":"^0.1.4"},"scripts":{"lint":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream","lint-console":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch","test":"node ./node_modules/tad/bin/tad"},"license":"MIT","gitHead":"ed9520bce248ecedff2614674f3fff2e4e31dfb7","bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"homepage":"https://github.com/medikoo/es6-weak-map#readme","_id":"es6-weak-map@2.0.0","_shasum":"eefc514c2d7a13703e29c497ef6c5bdbbbd3919b","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"medikoo","email":"medikoo+npm@medikoo.com"},"dist":{"shasum":"eefc514c2d7a13703e29c497ef6c5bdbbbd3919b","tarball":"http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.0.tgz"},"maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"directories":{}}},"readme":"# es6-weak-map\n## WeakMap collection as specified in ECMAScript6\n\n_Roughly inspired by Mark Miller's and Kris Kowal's [WeakMap implementation](https://github.com/drses/weak-map)_.\n\nDifferences are:\n- Assumes compliant ES5 environment (no weird ES3 workarounds or hacks)\n- Well modularized CJS style\n- Based on one solution.\n\n### Limitations\n\n- Will fail on non extensible objects provided as keys\n\n### Installation\n\n\t$ npm install es6-weak-map\n\nTo port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)\n\n### Usage\n\nIf you want to make sure your environment implements `WeakMap`, do:\n\n```javascript\nrequire('es6-weak-map/implement');\n```\n\nIf you'd like to use native version when it exists and fallback to polyfill if it doesn't, but without implementing `WeakMap` on global scope, do:\n\n```javascript\nvar WeakMap = require('es6-weak-map');\n```\n\nIf you strictly want to use polyfill even if native `WeakMap` exists, do:\n\n```javascript\nvar WeakMap = require('es6-weak-map/polyfill');\n```\n\n#### API\n\nBest is to refer to [specification](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-weakmap-objects). Still if you want quick look, follow example:\n\n```javascript\nvar WeakMap = require('es6-weak-map');\n\nvar map = new WeakMap();\nvar obj = {};\n\nmap.set(obj, 'foo'); // map\nmap.get(obj);        // 'foo'\nmap.has(obj);        // true\nmap.delete(obj);     // true\nmap.get(obj);        // undefined\nmap.has(obj);        // false\nmap.set(obj, 'bar'); // map\nmap.has(obj);        // false\n```\n\n## Tests [![Build Status](https://travis-ci.org/medikoo/es6-weak-map.svg)](https://travis-ci.org/medikoo/es6-weak-map)\n\n\t$ npm test\n","maintainers":[{"name":"medikoo","email":"medikoo+npm@medikoo.com"}],"time":{"modified":"2015-09-04T06:26:16.266Z","created":"2013-10-24T15:10:27.843Z","0.0.0":"2013-10-24T15:10:31.650Z","0.1.0":"2014-04-29T13:05:23.545Z","0.1.1":"2014-05-15T16:33:38.587Z","0.1.2":"2014-09-01T10:34:10.151Z","0.1.3":"2015-04-12T09:45:43.893Z","0.1.4":"2015-04-13T07:46:32.212Z","1.0.0":"2015-04-13T07:58:36.318Z","1.0.1":"2015-04-14T06:44:19.767Z","1.0.2":"2015-05-07T13:25:24.481Z","2.0.0":"2015-09-04T06:26:16.266Z"},"author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"repository":{"type":"git","url":"git://github.com/medikoo/es6-weak-map.git"},"homepage":"https://github.com/medikoo/es6-weak-map#readme","keywords":["map","weakmap","collection","es6","harmony","list","hash","gc","ponyfill"],"bugs":{"url":"https://github.com/medikoo/es6-weak-map/issues"},"license":"MIT","readmeFilename":"README.md","users":{"fgribreau":true},"_attachments":{},"_etag":"\"ER5JPUVMARGBTN489W5MTCXX8\""}
\ No newline at end of file
index 06da72684d1674ec32979b142c6d8594c5fe1086..6e2e95701fd46d33a8da6d4330f3d272036af285 100644 (file)
@@ -1 +1 @@
-{"_id":"event-kit","_rev":"41-46d98195d1a63b49c9fa080db43f6cd4","name":"event-kit","description":"Simple library for implementing and consuming evented APIs","dist-tags":{"latest":"1.2.0"},"versions":{"0.0.0":{"name":"event-kit","version":"0.0.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"9deb3fb67c6effa82ad9d2543243fc20746e69a8","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.0.0","_shasum":"7a2facb4b703f15644b43f131230c9ef6bd8b6db","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"7a2facb4b703f15644b43f131230c9ef6bd8b6db","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.0.0.tgz"},"directories":{}},"0.1.0":{"name":"event-kit","version":"0.1.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"af7d266963eaab44186504eb09ac3a294e46848a","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.1.0","_shasum":"e39468e66ff6dc7d9c19f1e7483d419c6ca4c0ea","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"e39468e66ff6dc7d9c19f1e7483d419c6ca4c0ea","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.1.0.tgz"},"directories":{}},"0.2.0":{"name":"event-kit","version":"0.2.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"39289d78ef39f44b7b783f086de2333c1c1d6915","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.2.0","_shasum":"8a34cb3405bb47da1e67d14e6dc011a384e39eef","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"8a34cb3405bb47da1e67d14e6dc011a384e39eef","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.2.0.tgz"},"directories":{}},"0.3.0":{"name":"event-kit","version":"0.3.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"7eb7dc828564d43333cdad54733e28945da2c224","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.3.0","_shasum":"7b6f523157057a4a64ad022ecaea74abbde4eb0b","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"7b6f523157057a4a64ad022ecaea74abbde4eb0b","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.3.0.tgz"},"directories":{}},"0.4.0":{"name":"event-kit","version":"0.4.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"a20f24d3ed8397d2a63b40cb7e061dc1620d8381","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.4.0","_shasum":"4b8178e357cd54988427b6ad3b2e5a0456e9a56e","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"4b8178e357cd54988427b6ad3b2e5a0456e9a56e","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.4.0.tgz"},"directories":{}},"0.5.0":{"name":"event-kit","version":"0.5.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"eae882ea014f06d3099cc644415a51b3de960193","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.5.0","_shasum":"4f2e097a37c4300c38821ef6edaceb67ae1fb888","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"4f2e097a37c4300c38821ef6edaceb67ae1fb888","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.5.0.tgz"},"directories":{}},"0.6.0":{"name":"event-kit","version":"0.6.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"36338e69f9af7f6dfc60be17e57b03e02fac08b7","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.6.0","_shasum":"d5de873e45c760c18db519a1d2c0239e827dcaf8","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"d5de873e45c760c18db519a1d2c0239e827dcaf8","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.6.0.tgz"},"directories":{}},"0.7.0":{"name":"event-kit","version":"0.7.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"bc40f84bc446d2c6bc94d11bccaf2232c6d98fd1","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.7.0","_shasum":"fc742c70961803b3a16688e330e02727fdab9423","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"fc742c70961803b3a16688e330e02727fdab9423","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.7.0.tgz"},"directories":{}},"0.7.1":{"name":"event-kit","version":"0.7.1","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"9399f796aac571113df6e6a0d796d02850c04e66","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.7.1","_shasum":"7226f0594fa07121e7202eb711a7021cd4d79a30","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"benogle","email":"ogle.ben@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"7226f0594fa07121e7202eb711a7021cd4d79a30","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.7.1.tgz"},"directories":{}},"0.7.2":{"name":"event-kit","version":"0.7.2","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"997b618b19566d5740c77507492528c52b5edb6a","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.7.2","_shasum":"331f5c36fde2ebd6413b69b56633e2b6b5cf9e60","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"benogle","email":"ogle.ben@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"331f5c36fde2ebd6413b69b56633e2b6b5cf9e60","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.7.2.tgz"},"directories":{}},"0.8.0":{"name":"event-kit","version":"0.8.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"119be0ff697c9e2d9ce49696c7b83c7f2fa4c3a9","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.8.0","_shasum":"9af3466e3d47043a6d252631355a05c58f877c9e","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"9af3466e3d47043a6d252631355a05c58f877c9e","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.8.0.tgz"},"directories":{}},"0.8.1":{"name":"event-kit","version":"0.8.1","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"956e354c35a606d9611fa44432bceee1e2c7d9e9","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.8.1","_shasum":"7ce2497d7084935d5f9cdcab6c2e9032106812f8","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"7ce2497d7084935d5f9cdcab6c2e9032106812f8","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.8.1.tgz"},"directories":{}},"0.8.2":{"name":"event-kit","version":"0.8.2","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.0.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"7b15e2855d2d69b9e310aa6202378d6a7f9f785c","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.8.2","_shasum":"42f327fb7fa16fa93a6b893c753cf5b5476a5fca","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"42f327fb7fa16fa93a6b893c753cf5b5476a5fca","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.8.2.tgz"},"directories":{}},"1.0.0":{"name":"event-kit","version":"1.0.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.0.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"3cbfe07e3d15811971c50bc78de72b9fd727b941","homepage":"https://github.com/atom/event-kit","_id":"event-kit@1.0.0","_shasum":"627a0215dd869a5952cb45728159bb93d9554d8b","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"627a0215dd869a5952cb45728159bb93d9554d8b","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-1.0.0.tgz"},"directories":{}},"1.0.1":{"name":"event-kit","version":"1.0.1","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.0.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"58c64c76bd2de0fe258784d5731182d8a1cbd1ba","homepage":"https://github.com/atom/event-kit","_id":"event-kit@1.0.1","_shasum":"e0fea9c6ec56b8d49ca758aec351a62ed7a90ed7","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"benogle","email":"ogle.ben@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"e0fea9c6ec56b8d49ca758aec351a62ed7a90ed7","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-1.0.1.tgz"},"directories":{}},"1.0.2":{"name":"event-kit","version":"1.0.2","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.0.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"e0802b1961d659dc075e10b632f5aebf19f271e7","homepage":"https://github.com/atom/event-kit","_id":"event-kit@1.0.2","_shasum":"20ab5dd4f637830b0f4e77c38a86de2754dc37d1","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"20ab5dd4f637830b0f4e77c38a86de2754dc37d1","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-1.0.2.tgz"},"directories":{}},"1.0.3":{"name":"event-kit","version":"1.0.3","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.0.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"83ee968ad75469ad56ae96148a2d1fca4e505b56","homepage":"https://github.com/atom/event-kit","_id":"event-kit@1.0.3","_shasum":"a1fbd42a7fcc1e84eedf86604958df7afbaf0925","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"a1fbd42a7fcc1e84eedf86604958df7afbaf0925","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-1.0.3.tgz"},"directories":{}},"1.1.0":{"name":"event-kit","version":"1.1.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.2.1"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"e01229ed9610366330e7572c35ee0f9fd8864ff8","homepage":"https://github.com/atom/event-kit","_id":"event-kit@1.1.0","_shasum":"2d3eb6cbe5b762d531bdd5719b444028e1f1a15f","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"2d3eb6cbe5b762d531bdd5719b444028e1f1a15f","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-1.1.0.tgz"},"directories":{}},"1.1.1":{"name":"event-kit","version":"1.1.1","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.2.1"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"d3c1df2d5064b9ec86a91f9afe1f1b4847e87abb","homepage":"https://github.com/atom/event-kit","_id":"event-kit@1.1.1","_shasum":"b35cf109bf5edf4ff2fa55e52a256496fb5df168","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"b35cf109bf5edf4ff2fa55e52a256496fb5df168","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-1.1.1.tgz"},"directories":{}},"1.2.0":{"name":"event-kit","version":"1.2.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.2.1"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"9fded8baac57a5d8f76ea3cef7c154ad05228fb7","homepage":"https://github.com/atom/event-kit","_id":"event-kit@1.2.0","_shasum":"6cc0a99d46ce86aaa2b3a64ccf3462a9f1519619","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"6cc0a99d46ce86aaa2b3a64ccf3462a9f1519619","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-1.2.0.tgz"},"directories":{}}},"readme":"# event-kit [![Build Status](https://travis-ci.org/atom/event-kit.svg?branch=master)](https://travis-ci.org/atom/event-kit)\n\nThis is a simple library for implementing event subscription APIs.\n\n## Implementing Event Subscription APIs\n\n```coffee\n{Emitter} = require 'event-kit'\n\nclass User\n  constructor: ->\n     @emitter = new Emitter\n\n  onDidChangeName: (callback) ->\n     @emitter.on 'did-change-name', callback\n\n  setName: (name) ->\n     if name isnt @name\n       @name = name\n       @emitter.emit 'did-change-name', name\n     @name\n\n  destroy: ->\n    @emitter.dispose()\n```\n\nIn the example above, we implement `::onDidChangeName` on the user object, which\nwill register callbacks to be invoked whenever the user's name changes. To do\nso, we make use of an internal `Emitter` instance. We use `::on` to subscribe\nthe given callback in `::onDidChangeName`, and `::emit` in `::setName` to notify\nsubscribers. Finally, when the `User` instance is destroyed we call `::dispose`\non the emitter to unsubscribe all subscribers.\n\n## Consuming Event Subscription APIs\n\n`Emitter::on` returns a `Disposable` instance, which has a `::dispose` method.\nTo unsubscribe, simply call dispose on the returned object.\n\n```coffee\nsubscription = user.onDidChangeName (name) -> console.log(\"My name is #{name}\")\n# Later, to unsubscribe...\nsubscription.dispose()\n```\n\nYou can also use `CompositeDisposable` to combine disposable instances together.\n\n```coffee\n{CompositeDisposable} = require 'event-kit'\n\nsubscriptions = new CompositeDisposable\nsubscriptions.add user1.onDidChangeName (name) -> console.log(\"User 1: #{name}\")\nsubscriptions.add user2.onDidChangeName (name) -> console.log(\"User 2: #{name}\")\n\n# Later, to unsubscribe from *both*...\nsubscriptions.dispose()\n```\n\n## Creating Your Own Disposables\n\nDisposables are convenient ways to represent a resource you will no longer\nneed at some point. You can instantiate a disposable with an action to take when\nno longer needed.\n\n```coffee\n{Disposable} = require 'event-kit'\n\ndisposable = new Disposable => @destroyResource()\n```\n","maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"time":{"modified":"2015-05-19T19:24:57.966Z","created":"2014-08-27T02:47:42.952Z","0.0.0":"2014-08-27T02:47:42.952Z","0.1.0":"2014-08-27T22:28:56.019Z","0.2.0":"2014-08-27T23:07:01.448Z","0.3.0":"2014-08-28T01:15:33.214Z","0.4.0":"2014-09-03T19:08:17.656Z","0.5.0":"2014-09-04T13:00:26.943Z","0.6.0":"2014-09-08T22:56:17.914Z","0.7.0":"2014-09-10T17:27:28.945Z","0.7.1":"2014-09-10T22:25:18.509Z","0.7.2":"2014-09-12T18:17:01.320Z","0.8.0":"2014-10-27T18:26:28.717Z","0.8.1":"2014-12-02T22:24:00.307Z","0.8.2":"2015-01-02T21:36:37.749Z","1.0.0":"2015-01-02T21:54:15.124Z","1.0.1":"2015-01-07T01:03:19.268Z","1.0.2":"2015-02-02T18:08:23.505Z","1.0.3":"2015-02-25T00:13:28.699Z","1.1.0":"2015-04-02T22:00:36.882Z","1.1.1":"2015-05-07T22:41:44.341Z","1.2.0":"2015-05-19T19:24:57.966Z"},"homepage":"https://github.com/atom/event-kit","repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"readmeFilename":"README.md","_attachments":{},"_etag":"\"BE900CYDT5JSKTU7MOR6EJHNV\""}
\ No newline at end of file
+{"_id":"event-kit","_rev":"42-40575d4b9125c61b3819e0bac2426eba","name":"event-kit","description":"Simple library for implementing and consuming evented APIs","dist-tags":{"latest":"1.3.0"},"versions":{"0.0.0":{"name":"event-kit","version":"0.0.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"9deb3fb67c6effa82ad9d2543243fc20746e69a8","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.0.0","_shasum":"7a2facb4b703f15644b43f131230c9ef6bd8b6db","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"7a2facb4b703f15644b43f131230c9ef6bd8b6db","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.0.0.tgz"},"directories":{}},"0.1.0":{"name":"event-kit","version":"0.1.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"af7d266963eaab44186504eb09ac3a294e46848a","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.1.0","_shasum":"e39468e66ff6dc7d9c19f1e7483d419c6ca4c0ea","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"e39468e66ff6dc7d9c19f1e7483d419c6ca4c0ea","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.1.0.tgz"},"directories":{}},"0.2.0":{"name":"event-kit","version":"0.2.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"39289d78ef39f44b7b783f086de2333c1c1d6915","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.2.0","_shasum":"8a34cb3405bb47da1e67d14e6dc011a384e39eef","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"8a34cb3405bb47da1e67d14e6dc011a384e39eef","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.2.0.tgz"},"directories":{}},"0.3.0":{"name":"event-kit","version":"0.3.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"7eb7dc828564d43333cdad54733e28945da2c224","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.3.0","_shasum":"7b6f523157057a4a64ad022ecaea74abbde4eb0b","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"7b6f523157057a4a64ad022ecaea74abbde4eb0b","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.3.0.tgz"},"directories":{}},"0.4.0":{"name":"event-kit","version":"0.4.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"a20f24d3ed8397d2a63b40cb7e061dc1620d8381","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.4.0","_shasum":"4b8178e357cd54988427b6ad3b2e5a0456e9a56e","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"4b8178e357cd54988427b6ad3b2e5a0456e9a56e","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.4.0.tgz"},"directories":{}},"0.5.0":{"name":"event-kit","version":"0.5.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"eae882ea014f06d3099cc644415a51b3de960193","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.5.0","_shasum":"4f2e097a37c4300c38821ef6edaceb67ae1fb888","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"4f2e097a37c4300c38821ef6edaceb67ae1fb888","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.5.0.tgz"},"directories":{}},"0.6.0":{"name":"event-kit","version":"0.6.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"36338e69f9af7f6dfc60be17e57b03e02fac08b7","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.6.0","_shasum":"d5de873e45c760c18db519a1d2c0239e827dcaf8","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"d5de873e45c760c18db519a1d2c0239e827dcaf8","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.6.0.tgz"},"directories":{}},"0.7.0":{"name":"event-kit","version":"0.7.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"bc40f84bc446d2c6bc94d11bccaf2232c6d98fd1","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.7.0","_shasum":"fc742c70961803b3a16688e330e02727fdab9423","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"fc742c70961803b3a16688e330e02727fdab9423","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.7.0.tgz"},"directories":{}},"0.7.1":{"name":"event-kit","version":"0.7.1","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"9399f796aac571113df6e6a0d796d02850c04e66","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.7.1","_shasum":"7226f0594fa07121e7202eb711a7021cd4d79a30","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"benogle","email":"ogle.ben@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"7226f0594fa07121e7202eb711a7021cd4d79a30","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.7.1.tgz"},"directories":{}},"0.7.2":{"name":"event-kit","version":"0.7.2","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"997b618b19566d5740c77507492528c52b5edb6a","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.7.2","_shasum":"331f5c36fde2ebd6413b69b56633e2b6b5cf9e60","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"benogle","email":"ogle.ben@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"331f5c36fde2ebd6413b69b56633e2b6b5cf9e60","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.7.2.tgz"},"directories":{}},"0.8.0":{"name":"event-kit","version":"0.8.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"119be0ff697c9e2d9ce49696c7b83c7f2fa4c3a9","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.8.0","_shasum":"9af3466e3d47043a6d252631355a05c58f877c9e","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"9af3466e3d47043a6d252631355a05c58f877c9e","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.8.0.tgz"},"directories":{}},"0.8.1":{"name":"event-kit","version":"0.8.1","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^0.12.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"956e354c35a606d9611fa44432bceee1e2c7d9e9","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.8.1","_shasum":"7ce2497d7084935d5f9cdcab6c2e9032106812f8","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"7ce2497d7084935d5f9cdcab6c2e9032106812f8","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.8.1.tgz"},"directories":{}},"0.8.2":{"name":"event-kit","version":"0.8.2","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.0.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"7b15e2855d2d69b9e310aa6202378d6a7f9f785c","homepage":"https://github.com/atom/event-kit","_id":"event-kit@0.8.2","_shasum":"42f327fb7fa16fa93a6b893c753cf5b5476a5fca","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"42f327fb7fa16fa93a6b893c753cf5b5476a5fca","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-0.8.2.tgz"},"directories":{}},"1.0.0":{"name":"event-kit","version":"1.0.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.0.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"3cbfe07e3d15811971c50bc78de72b9fd727b941","homepage":"https://github.com/atom/event-kit","_id":"event-kit@1.0.0","_shasum":"627a0215dd869a5952cb45728159bb93d9554d8b","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"627a0215dd869a5952cb45728159bb93d9554d8b","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-1.0.0.tgz"},"directories":{}},"1.0.1":{"name":"event-kit","version":"1.0.1","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.0.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"58c64c76bd2de0fe258784d5731182d8a1cbd1ba","homepage":"https://github.com/atom/event-kit","_id":"event-kit@1.0.1","_shasum":"e0fea9c6ec56b8d49ca758aec351a62ed7a90ed7","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"benogle","email":"ogle.ben@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"e0fea9c6ec56b8d49ca758aec351a62ed7a90ed7","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-1.0.1.tgz"},"directories":{}},"1.0.2":{"name":"event-kit","version":"1.0.2","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.0.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"e0802b1961d659dc075e10b632f5aebf19f271e7","homepage":"https://github.com/atom/event-kit","_id":"event-kit@1.0.2","_shasum":"20ab5dd4f637830b0f4e77c38a86de2754dc37d1","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"20ab5dd4f637830b0f4e77c38a86de2754dc37d1","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-1.0.2.tgz"},"directories":{}},"1.0.3":{"name":"event-kit","version":"1.0.3","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.0.0"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"83ee968ad75469ad56ae96148a2d1fca4e505b56","homepage":"https://github.com/atom/event-kit","_id":"event-kit@1.0.3","_shasum":"a1fbd42a7fcc1e84eedf86604958df7afbaf0925","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"a1fbd42a7fcc1e84eedf86604958df7afbaf0925","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-1.0.3.tgz"},"directories":{}},"1.1.0":{"name":"event-kit","version":"1.1.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.2.1"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"e01229ed9610366330e7572c35ee0f9fd8864ff8","homepage":"https://github.com/atom/event-kit","_id":"event-kit@1.1.0","_shasum":"2d3eb6cbe5b762d531bdd5719b444028e1f1a15f","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"}],"dist":{"shasum":"2d3eb6cbe5b762d531bdd5719b444028e1f1a15f","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-1.1.0.tgz"},"directories":{}},"1.1.1":{"name":"event-kit","version":"1.1.1","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.2.1"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"d3c1df2d5064b9ec86a91f9afe1f1b4847e87abb","homepage":"https://github.com/atom/event-kit","_id":"event-kit@1.1.1","_shasum":"b35cf109bf5edf4ff2fa55e52a256496fb5df168","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"b35cf109bf5edf4ff2fa55e52a256496fb5df168","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-1.1.1.tgz"},"directories":{}},"1.2.0":{"name":"event-kit","version":"1.2.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.2.1"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"9fded8baac57a5d8f76ea3cef7c154ad05228fb7","homepage":"https://github.com/atom/event-kit","_id":"event-kit@1.2.0","_shasum":"6cc0a99d46ce86aaa2b3a64ccf3462a9f1519619","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"6cc0a99d46ce86aaa2b3a64ccf3462a9f1519619","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-1.2.0.tgz"},"directories":{}},"1.3.0":{"name":"event-kit","version":"1.3.0","description":"Simple library for implementing and consuming evented APIs","main":"./lib/event-kit","scripts":{"prepublish":"grunt clean lint coffee shell:update-atomdoc atomdoc","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/event-kit/raw/master/LICENSE.md"}],"dependencies":{"grim":"^1.2.1"},"devDependencies":{"coffee-cache":"^0.2.0","coffee-script":"^1.7.0","grunt":"^0.4.1","grunt-atomdoc":"^1.0.0","grunt-cli":"^0.1.8","grunt-coffeelint":"^0.0.6","grunt-contrib-coffee":"^0.9.0","grunt-shell":"^0.2.2","jasmine-focused":"^1.0.4","rimraf":"^2.2.2","temp":"^0.6.0"},"gitHead":"124136b0c264ec89d7e514aeb93854b756247967","homepage":"https://github.com/atom/event-kit","_id":"event-kit@1.3.0","_shasum":"509e46c0bca2391d5dc4af545feb37925db8b6d5","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"},"maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"509e46c0bca2391d5dc4af545feb37925db8b6d5","tarball":"http://registry.npmjs.org/event-kit/-/event-kit-1.3.0.tgz"},"directories":{}}},"readme":"# event-kit [![Build Status](https://travis-ci.org/atom/event-kit.svg?branch=master)](https://travis-ci.org/atom/event-kit)\n\nThis is a simple library for implementing event subscription APIs.\n\n## Implementing Event Subscription APIs\n\n```coffee\n{Emitter} = require 'event-kit'\n\nclass User\n  constructor: ->\n     @emitter = new Emitter\n\n  onDidChangeName: (callback) ->\n     @emitter.on 'did-change-name', callback\n\n  setName: (name) ->\n     if name isnt @name\n       @name = name\n       @emitter.emit 'did-change-name', name\n     @name\n\n  destroy: ->\n    @emitter.dispose()\n```\n\nIn the example above, we implement `::onDidChangeName` on the user object, which\nwill register callbacks to be invoked whenever the user's name changes. To do\nso, we make use of an internal `Emitter` instance. We use `::on` to subscribe\nthe given callback in `::onDidChangeName`, and `::emit` in `::setName` to notify\nsubscribers. Finally, when the `User` instance is destroyed we call `::dispose`\non the emitter to unsubscribe all subscribers.\n\n## Consuming Event Subscription APIs\n\n`Emitter::on` returns a `Disposable` instance, which has a `::dispose` method.\nTo unsubscribe, simply call dispose on the returned object.\n\n```coffee\nsubscription = user.onDidChangeName (name) -> console.log(\"My name is #{name}\")\n# Later, to unsubscribe...\nsubscription.dispose()\n```\n\nYou can also use `CompositeDisposable` to combine disposable instances together.\n\n```coffee\n{CompositeDisposable} = require 'event-kit'\n\nsubscriptions = new CompositeDisposable\nsubscriptions.add user1.onDidChangeName (name) -> console.log(\"User 1: #{name}\")\nsubscriptions.add user2.onDidChangeName (name) -> console.log(\"User 2: #{name}\")\n\n# Later, to unsubscribe from *both*...\nsubscriptions.dispose()\n```\n\n## Creating Your Own Disposables\n\nDisposables are convenient ways to represent a resource you will no longer\nneed at some point. You can instantiate a disposable with an action to take when\nno longer needed.\n\n```coffee\n{Disposable} = require 'event-kit'\n\ndisposable = new Disposable => @destroyResource()\n```\n","maintainers":[{"name":"nathansobo","email":"nathan@github.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"zcbenz","email":"zcbenz@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"time":{"modified":"2015-08-26T16:20:49.614Z","created":"2014-08-27T02:47:42.952Z","0.0.0":"2014-08-27T02:47:42.952Z","0.1.0":"2014-08-27T22:28:56.019Z","0.2.0":"2014-08-27T23:07:01.448Z","0.3.0":"2014-08-28T01:15:33.214Z","0.4.0":"2014-09-03T19:08:17.656Z","0.5.0":"2014-09-04T13:00:26.943Z","0.6.0":"2014-09-08T22:56:17.914Z","0.7.0":"2014-09-10T17:27:28.945Z","0.7.1":"2014-09-10T22:25:18.509Z","0.7.2":"2014-09-12T18:17:01.320Z","0.8.0":"2014-10-27T18:26:28.717Z","0.8.1":"2014-12-02T22:24:00.307Z","0.8.2":"2015-01-02T21:36:37.749Z","1.0.0":"2015-01-02T21:54:15.124Z","1.0.1":"2015-01-07T01:03:19.268Z","1.0.2":"2015-02-02T18:08:23.505Z","1.0.3":"2015-02-25T00:13:28.699Z","1.1.0":"2015-04-02T22:00:36.882Z","1.1.1":"2015-05-07T22:41:44.341Z","1.2.0":"2015-05-19T19:24:57.966Z","1.3.0":"2015-08-26T16:20:49.614Z"},"homepage":"https://github.com/atom/event-kit","repository":{"type":"git","url":"https://github.com/atom/event-kit.git"},"bugs":{"url":"https://github.com/atom/event-kit/issues"},"readmeFilename":"README.md","_attachments":{},"_etag":"\"5MPHELM1QS4YZWIEHNFJ153AA\""}
\ No newline at end of file
index 5b8312c365c6fa89aad9f4cca5c90d2da0aab3d6..fbff4c9f32aa6de88b7d1363fae6d7fd0b06d070 100644 (file)
@@ -1 +1 @@
-{"_id":"fs-plus","_rev":"87-52681f370cc3e6c8c61056a98295bc1f","name":"fs-plus","description":"node's fs with more helpers","dist-tags":{"latest":"2.8.1"},"versions":{"0.1.0":{"name":"fs-plus","version":"0.1.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"~0.4.3"},"_id":"fs-plus@0.1.0","dist":{"shasum":"d8f55c71438f6173b01095bdfcddb0b0615c0d04","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.1.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.2.0":{"name":"fs-plus","version":"0.2.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git"},"_id":"fs-plus@0.2.0","dist":{"shasum":"aca00f533dc4711ce7bb7ca4b45108174b482183","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.2.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.3.0":{"name":"fs-plus","version":"0.3.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git"},"_id":"fs-plus@0.3.0","dist":{"shasum":"b4d8207b1d8a008519a6fcfc8bcf4354522d2637","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.3.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.4.0":{"name":"fs-plus","version":"0.4.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git"},"_id":"fs-plus@0.4.0","dist":{"shasum":"7d4ebd630f91d70c8f45240f5d2bcfc8f35328fe","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.4.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.5.0":{"name":"fs-plus","version":"0.5.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git"},"_id":"fs-plus@0.5.0","dist":{"shasum":"adcfe563fea70ad22da235e0dc8b199cca94b298","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.5.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.6.0":{"name":"fs-plus","version":"0.6.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git"},"_id":"fs-plus@0.6.0","dist":{"shasum":"56052304b577bb696487550952aa0737d0299c78","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.6.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.7.0":{"name":"fs-plus","version":"0.7.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git","season":"~0.14.0"},"_id":"fs-plus@0.7.0","dist":{"shasum":"0906057090a94c5c4b48ca281a116ab1148b42ba","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.7.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.9.0":{"name":"fs-plus","version":"0.9.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git","season":"~0.14.0"},"_id":"fs-plus@0.9.0","dist":{"shasum":"cd8ffac9290c55c782dc2a58f36f0e67e01860f6","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.9.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.10.0":{"name":"fs-plus","version":"0.10.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.3.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git","season":"~0.14.0"},"_id":"fs-plus@0.10.0","dist":{"shasum":"368d59d2161e89b4223b2fdd5f643d47d9caf01e","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.10.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"0.11.0":{"name":"fs-plus","version":"0.11.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.5.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git","season":"~0.14.0"},"_id":"fs-plus@0.11.0","dist":{"shasum":"df90ba6998d4f7539691829fe6c482d82dc86b03","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.11.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"0.12.0":{"name":"fs-plus","version":"0.12.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.5.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git","season":"~0.14.0"},"_id":"fs-plus@0.12.0","dist":{"shasum":"bc967f9b339305172599895e9b30361004d7a5f6","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.12.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"0.13.0":{"name":"fs-plus","version":"0.13.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.6.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git","season":"~0.14.0"},"_id":"fs-plus@0.13.0","dist":{"shasum":"dbba27b0bb82485514e2294c209b3eb443d36ea3","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.13.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"mcolyer","email":"matt@colyer.name"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"0.14.0":{"name":"fs-plus","version":"0.14.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.6.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git","season":"~0.14.0"},"_id":"fs-plus@0.14.0","dist":{"shasum":"0f38ad6caf09d8776635d0d4c3696b2a242778c4","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.14.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"1.0.0":{"name":"fs-plus","version":"1.0.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.19.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","season":"~0.14.0"},"_id":"fs-plus@1.0.0","dist":{"shasum":"864ced3286e0c1c3bce2e44073847dab2ff78f68","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-1.0.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"1.0.1":{"name":"fs-plus","version":"1.0.1","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.19.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","season":"~0.14.0"},"_id":"fs-plus@1.0.1","dist":{"shasum":"88c9ab8e4f5334aa5936a05f16b9d55b2bfac83d","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-1.0.1.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"2.0.0":{"name":"fs-plus","version":"2.0.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.19.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","season":"~0.14.0"},"_id":"fs-plus@2.0.0","dist":{"shasum":"8b2a094aa5eb00deb6b5cc0ef11b0f80d607f1b5","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.0.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"2.0.1":{"name":"fs-plus","version":"2.0.1","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.19.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.0.1","dist":{"shasum":"6cfb306c4f181e116745bc42c3389a95bd06b701","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.0.1.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"2.0.2":{"name":"fs-plus","version":"2.0.2","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.0.2","dist":{"shasum":"29b6160577fc17c7e38c72fefe80f04f300b5d73","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.0.2.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"2.0.3":{"name":"fs-plus","version":"2.0.3","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.0.3","dist":{"shasum":"594d062614ddf34f6b7a230f2da7706ca2dceefb","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.0.3.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"nathansobo","email":"nathansobo@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.0.4":{"name":"fs-plus","version":"2.0.4","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.0.4","dist":{"shasum":"321f78e3b754e3f634e3221789d8aa6e94610ddf","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.0.4.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.1.0":{"name":"fs-plus","version":"2.1.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.1.0","dist":{"shasum":"5e8d62e060e723dfb1fc09cd62dc6e186457504b","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.1.0.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.2.0":{"name":"fs-plus","version":"2.2.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.2.0","dist":{"shasum":"0703e4eb72983b0d0cf975b533c5623c8f1a0aea","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.2.0.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.2.1":{"name":"fs-plus","version":"2.2.1","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.2.1","dist":{"shasum":"1fc0621d4b8736909f0c95e5e9b1a592caf06f68","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.2.1.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.2.2":{"name":"fs-plus","version":"2.2.2","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.2.2","dist":{"shasum":"501b1aa1beede2acae4c162ea8597994c7dcd194","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.2.2.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.2.3":{"name":"fs-plus","version":"2.2.3","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.2.3","dist":{"shasum":"7dcdb0c4ff9beba3c4dc404e2c8a3284cfbec6f0","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.2.3.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.2.4":{"name":"fs-plus","version":"2.2.4","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.2.4","dist":{"shasum":"4d0803af3c9822f0a48b5b699125e138202882a5","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.2.4.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.2.5":{"name":"fs-plus","version":"2.2.5","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.2.5","dist":{"shasum":"e390a19e56dc37cec8e5fc226209526a0adc2a1a","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.2.5.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.2.6":{"name":"fs-plus","version":"2.2.6","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.2.6","dist":{"shasum":"9bba59b2041f7f446567d4ae658f12e12bf6a5eb","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.2.6.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.3.0":{"name":"fs-plus","version":"2.3.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.3.0","dist":{"shasum":"5a69c58c45e8f8be89711d678ed714efa25c5934","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.3.0.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.3.1":{"name":"fs-plus","version":"2.3.1","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"fdea4e6b36ca3adcdddadac5ca4bb7e0608562e8","_id":"fs-plus@2.3.1","_shasum":"b9dff9e90af175bf5687beb1574b4836121aafbe","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"b9dff9e90af175bf5687beb1574b4836121aafbe","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.3.1.tgz"},"directories":{}},"2.3.2":{"name":"fs-plus","version":"2.3.2","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"9c0b7ec93a4fd04471d988b966179f6a8aa1f355","_id":"fs-plus@2.3.2","_shasum":"beea9a8295c2fad4322cd6af2934a07de7e6052d","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"beea9a8295c2fad4322cd6af2934a07de7e6052d","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.3.2.tgz"},"directories":{}},"2.4.0":{"name":"fs-plus","version":"2.4.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"6ac4c265a11e44bdb85b6f494c9fcd31b7f9011c","_id":"fs-plus@2.4.0","_shasum":"28ea0e551f0afb70efc6fa92204e29b4eab7d902","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"28ea0e551f0afb70efc6fa92204e29b4eab7d902","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.4.0.tgz"},"directories":{}},"2.5.0":{"name":"fs-plus","version":"2.5.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"79f737abe6eeb126639eff7bccb92d8d40cb0b05","_id":"fs-plus@2.5.0","_shasum":"b6b1b75ce241ff730a2b7ada4225b2393053a906","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"b6b1b75ce241ff730a2b7ada4225b2393053a906","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.5.0.tgz"},"directories":{}},"2.6.0":{"name":"fs-plus","version":"2.6.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.8.1"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"a7ddecee34ae2e1d8d7794f3f049e2d8dbc5b962","_id":"fs-plus@2.6.0","_shasum":"f523f64fc4663bd92d3667be23674c1ad4b75c7a","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"f523f64fc4663bd92d3667be23674c1ad4b75c7a","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.6.0.tgz"},"directories":{}},"2.7.0":{"name":"fs-plus","version":"2.7.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.8.1"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"821662d5361c829b29503ade07308434db51629a","_id":"fs-plus@2.7.0","_shasum":"32c83d6bd0292be8e8d2afc8ea39a1aa9f6380fc","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"32c83d6bd0292be8e8d2afc8ea39a1aa9f6380fc","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.7.0.tgz"},"directories":{}},"2.7.1":{"name":"fs-plus","version":"2.7.1","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.8.1"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"b1b6f3ed46c0435464bb74b00010e9019db13ec4","_id":"fs-plus@2.7.1","_shasum":"fe68dab2403cd5f6235d200aeb84d611b5d0d03c","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"fe68dab2403cd5f6235d200aeb84d611b5d0d03c","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.7.1.tgz"},"directories":{}},"2.8.0":{"name":"fs-plus","version":"2.8.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.8.1"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"92d084b0b5a2d94b5088cb1ff257646491819ad7","_id":"fs-plus@2.8.0","_shasum":"293a12eb985eccd32796628f8c246bd769aea889","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"293a12eb985eccd32796628f8c246bd769aea889","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.8.0.tgz"},"directories":{}},"2.8.1":{"name":"fs-plus","version":"2.8.1","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.8.1"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"eb4915c02f09427b1bb002b886a9cfc34a262e1f","_id":"fs-plus@2.8.1","_shasum":"60bcae0d2066f4bb4726f23add525dada80630f6","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"60bcae0d2066f4bb4726f23add525dada80630f6","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.8.1.tgz"},"directories":{}}},"readme":"# fs plus [![Build Status](https://travis-ci.org/atom/fs-plus.svg?branch=master)](https://travis-ci.org/atom/fs-plus)\n\nYet another filesystem helper based on node's [fs](http://nodejs.org/api/fs.html)\nmodule.  This library exports everything from node's fs module but with some\nextra helpers.\n\n## Using\n\n```sh\nnpm install fs-plus\n```\n\n```coffee\nfs = require 'fs-plus'\n```\n\n## Documentation\n\n### `getHomeDirectory()`\nReturns the absolute path to the home directory.\n\n### `absolute(relativePath)`\nMake the given path absolute by resolving it against the current\nworking directory.\n\n### Params\n\n - **String** `relativePath`: The string representing the relative path. If the\n   path is prefixed with '~', it will be expanded to the current user's home\n   directory.\n\n### Return\n\n - **String**: The absolute path or the relative path if it's unable to\n   determine its real path.\n\n### `normalize(pathToNormalize)`\nNormalize the given path treating a leading `~` segment as referring to the\nhome directory. This method does not query the filesystem.\n\n#### Params\n\n - **String** `pathToNormalize`: The string containing the abnormal path. If the\n   path is prefixed with '~', it will be expanded to the current user's home\n   directory.\n\n#### Return\n - **String** Returns a normalized path.\n\n### `getAppDataDirectory()`\nGet path to store application specific data.\n\n#### Return\n - **String** Returns the absolute path or null if platform isn't supported\n\n    - Mac: `~/Library/Application Support/`\n    - Win: `%AppData%`\n    - Linux: `/var/lib`\n\n### `isAbsolute(pathToCheck)`\nIs the given path absolute?\n\n#### Params\n - **String** `pathToCheck`: The relative or absolute path to check.\n\n#### Return\n - **Bolean** Returns `true` if the path is absolute, `false` otherwise.\n\n### `existsSync(pathToCheck)`\nReturns `true` if a file or folder at the specified path exists.\n\n### `isDirectorySync(directoryPath)`\nReturns `true` if the given path exists and is a directory.\n\n### `isDirectory(directoryPath)`\nAsynchronously checks that the given path exists and is a directory.\n\n### `isFileSync(filePath)`\nReturns true if the specified path exists and is a file.\n\n### `isSymbolicLinkSync(symlinkPath)`\nReturns `true` if the specified path is a symbolic link.\n\n### `isSymbolicLink(symlinkPath, callback)`\nCalls back with `true` if the specified path is a symbolic link.\n\n### `isExecutableSync(pathToCheck)`\nReturns `true` if the specified path is executable.\n\n### `getSizeSync(pathToCheck)`\nReturns the size of the specified path.\n\n### `listSync(rootPath, extensions)`\nReturns an Array with the paths of the files and directories\ncontained within the directory path. It is not recursive.\n\n## Params\n - **String** `rootPath`: The absolute path to the directory to list.\n - **Array** `extensions`: An array of extensions to filter the results by. If none are\n   given, none are filtered (optional).\n\n### `list(rootPath, extensions)`\nAsynchronously lists the files and directories in the given path. The listing is not recursive.\n\n### `listTreeSync(rootPath)`\nGet all paths under the given path.\n\n#### Params\n - **String** `rootPath` The {String} path to start at.\n\n#### Return\n - **Array** Returns an array of strings under the given path.\n\n### `moveSync(source, target)`\nMoves the file or directory to the target synchronously.\n\n### `removeSync(pathToRemove)`\nRemoves the file or directory at the given path synchronously.\n\n### `writeFileSync(filePath, content, options)`\nOpen, write, flush, and close a file, writing the given content synchronously.\nIt also creates the necessary parent directories.\n\n### `writeFile(filePath, content, options, callback)`\nOpen, write, flush, and close a file, writing the given content\nasynchronously.\nIt also creates the necessary parent directories.\n\n### `copySync(sourcePath, destinationPath)`\nCopies the given path recursively and synchronously.\n\n### `makeTreeSync(directoryPath)`\nCreate a directory at the specified path including any missing\nparent directories synchronously.\n\n### `makeTree(directoryPath, callback)`\nCreate a directory at the specified path including any missing\nparent directories asynchronously.\n\n### `traverseTreeSync(rootPath, onFile, onDirectory)`\nRecursively walk the given path and execute the given functions\nsynchronously.\n\n#### Params\n - **String** `rootPath`: The string containing the directory to recurse into.\n - **Function** `onFile`: The function to execute on each file, receives a single argument\n   the absolute path.\n - **Function** `onDirectory`: The function to execute on each directory, receives a single\n   argument the absolute path (defaults to onFile). If this\n   function returns a falsy value then the directory is not\n   entered.\n\n### `traverseTree(rootPath, onFile, onDirectory, onDone)`\nPublic: Recursively walk the given path and execute the given functions\nasynchronously.\n\n### `md5ForPath(pathToDigest)`\nHashes the contents of the given file.\n\n#### Params\n - **String** `pathToDigest`: The string containing the absolute path.\n\n#### Return\n - **String** Returns a string containing the MD5 hexadecimal hash.\n\n### `resolve(loadPaths, pathToResolve, extensions)`\nFinds a relative path among the given array of paths.\n\n#### Params\n - **Array** `loadPaths`: An array of absolute and relative paths to search.\n - **String** `pathToResolve` The string containing the path to resolve.\n - **Array** `extensions` An array of extensions to pass to {resolveExtensions} in\n   which case pathToResolve should not contain an extension\n   (optional).\n\n#### Return\nReturns the absolute path of the file to be resolved if it's found and\nundefined otherwise.\n\n### `resolveOnLoadPath()`\nLike `.resolve` but uses node's modules paths as the load paths to\nsearch.\n\n### `resolveExtension(pathToResolve, extensions)`\nFinds the first file in the given path which matches the extension\nin the order given.\n\n#### Params\n - **String** `pathToResolve`: the string containing relative or absolute path of the\n   file in question without the extension or '.'.\n - **Array** `extensions`: the ordered array of extensions to try.\n\n#### Return\nReturns the absolute path of the file if it exists with any of the given\nextensions, otherwise it's undefined.\n\n### `isCompressedExtension(ext)`\nReturns true for extensions associated with compressed files.\n\n### `isImageExtension(ext)`\nReturns true for extensions associated with image files.\n\n### `isPdfExtension(ext)`\nReturns true for extensions associated with pdf files.\n\n### `isBinaryExtension(ext)`\nReturns true for extensions associated with binary files.\n\n### `isReadmePath(readmePath)`\nReturns true for files named similarily to 'README'\n\n### `isMarkdownExtension(ext)`\nReturns true for extensions associated with Markdown files.\n\n### `isCaseInsensitive()`\nIs the filesystem case insensitive?\nReturns `true` if case insensitive, `false` otherwise.\n\n### `isCaseSensitive()`\nIs the filesystem case sensitive?\nReturns `true` if case sensitive, `false` otherwise.\n","maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"time":{"modified":"2015-05-18T16:40:58.231Z","created":"2013-10-31T18:49:50.150Z","0.1.0":"2013-10-31T18:49:51.452Z","0.2.0":"2013-10-31T20:08:02.233Z","0.3.0":"2013-10-31T20:40:51.872Z","0.4.0":"2013-10-31T21:56:14.903Z","0.5.0":"2013-11-01T00:35:52.494Z","0.6.0":"2013-11-01T16:08:26.382Z","0.7.0":"2013-11-01T18:10:18.112Z","0.9.0":"2013-11-08T22:07:39.923Z","0.10.0":"2013-11-23T18:39:45.209Z","0.11.0":"2013-12-11T18:07:35.183Z","0.12.0":"2013-12-17T17:44:40.413Z","0.13.0":"2013-12-18T00:37:32.939Z","0.14.0":"2014-01-06T17:13:56.081Z","1.0.0":"2014-01-16T23:53:09.940Z","1.0.1":"2014-01-17T02:46:49.938Z","2.0.0":"2014-02-17T23:18:09.767Z","2.0.1":"2014-02-17T23:20:01.300Z","2.0.2":"2014-03-07T17:22:02.848Z","2.0.3":"2014-03-11T17:11:13.764Z","2.0.4":"2014-03-12T16:55:11.955Z","2.1.0":"2014-03-28T17:58:56.422Z","2.2.0":"2014-03-28T19:42:19.773Z","2.2.1":"2014-04-09T17:02:49.197Z","2.2.2":"2014-04-17T20:23:41.037Z","2.2.3":"2014-05-15T19:14:01.819Z","2.2.4":"2014-07-21T20:52:58.909Z","2.2.5":"2014-07-28T23:02:00.361Z","2.2.6":"2014-07-29T00:09:23.170Z","2.3.0":"2014-08-19T01:15:57.365Z","2.3.1":"2014-10-01T15:28:48.775Z","2.3.2":"2014-11-20T19:04:41.126Z","2.4.0":"2014-12-15T21:04:05.946Z","2.5.0":"2015-02-05T00:36:11.512Z","2.6.0":"2015-03-17T23:48:14.510Z","2.7.0":"2015-04-02T23:54:01.945Z","2.7.1":"2015-04-20T22:46:56.329Z","2.8.0":"2015-05-05T15:53:02.642Z","2.8.1":"2015-05-18T16:40:58.231Z"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"readmeFilename":"README.md","homepage":"http://atom.github.io/fs-plus","keywords":["fs","filesystem"],"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"users":{"lezuse":true,"ergunozyurt":true,"thomasjo":true},"_attachments":{},"_etag":"\"A1X3DPP3ZGTI3ATWVSTVE9PEU\""}
\ No newline at end of file
+{"_id":"fs-plus","_rev":"89-d397b0d347099e6dd427fee3a6e6bfe3","name":"fs-plus","description":"node's fs with more helpers","dist-tags":{"latest":"2.8.1"},"versions":{"0.1.0":{"name":"fs-plus","version":"0.1.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"~0.4.3"},"_id":"fs-plus@0.1.0","dist":{"shasum":"d8f55c71438f6173b01095bdfcddb0b0615c0d04","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.1.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.2.0":{"name":"fs-plus","version":"0.2.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git"},"_id":"fs-plus@0.2.0","dist":{"shasum":"aca00f533dc4711ce7bb7ca4b45108174b482183","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.2.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.3.0":{"name":"fs-plus","version":"0.3.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git"},"_id":"fs-plus@0.3.0","dist":{"shasum":"b4d8207b1d8a008519a6fcfc8bcf4354522d2637","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.3.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.4.0":{"name":"fs-plus","version":"0.4.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git"},"_id":"fs-plus@0.4.0","dist":{"shasum":"7d4ebd630f91d70c8f45240f5d2bcfc8f35328fe","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.4.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.5.0":{"name":"fs-plus","version":"0.5.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git"},"_id":"fs-plus@0.5.0","dist":{"shasum":"adcfe563fea70ad22da235e0dc8b199cca94b298","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.5.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.6.0":{"name":"fs-plus","version":"0.6.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git"},"_id":"fs-plus@0.6.0","dist":{"shasum":"56052304b577bb696487550952aa0737d0299c78","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.6.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.7.0":{"name":"fs-plus","version":"0.7.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git","season":"~0.14.0"},"_id":"fs-plus@0.7.0","dist":{"shasum":"0906057090a94c5c4b48ca281a116ab1148b42ba","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.7.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.9.0":{"name":"fs-plus","version":"0.9.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.2.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git","season":"~0.14.0"},"_id":"fs-plus@0.9.0","dist":{"shasum":"cd8ffac9290c55c782dc2a58f36f0e67e01860f6","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.9.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"}],"directories":{}},"0.10.0":{"name":"fs-plus","version":"0.10.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.3.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git","season":"~0.14.0"},"_id":"fs-plus@0.10.0","dist":{"shasum":"368d59d2161e89b4223b2fdd5f643d47d9caf01e","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.10.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"0.11.0":{"name":"fs-plus","version":"0.11.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.5.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git","season":"~0.14.0"},"_id":"fs-plus@0.11.0","dist":{"shasum":"df90ba6998d4f7539691829fe6c482d82dc86b03","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.11.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"0.12.0":{"name":"fs-plus","version":"0.12.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.5.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git","season":"~0.14.0"},"_id":"fs-plus@0.12.0","dist":{"shasum":"bc967f9b339305172599895e9b30361004d7a5f6","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.12.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"0.13.0":{"name":"fs-plus","version":"0.13.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.6.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git","season":"~0.14.0"},"_id":"fs-plus@0.13.0","dist":{"shasum":"dbba27b0bb82485514e2294c209b3eb443d36ea3","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.13.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"mcolyer","email":"matt@colyer.name"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"0.14.0":{"name":"fs-plus","version":"0.14.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.15.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"~0.6.0","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","plist":"git://github.com/nathansobo/node-plist.git","season":"~0.14.0"},"_id":"fs-plus@0.14.0","dist":{"shasum":"0f38ad6caf09d8776635d0d4c3696b2a242778c4","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-0.14.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"1.0.0":{"name":"fs-plus","version":"1.0.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.19.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","season":"~0.14.0"},"_id":"fs-plus@1.0.0","dist":{"shasum":"864ced3286e0c1c3bce2e44073847dab2ff78f68","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-1.0.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"1.0.1":{"name":"fs-plus","version":"1.0.1","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.19.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","season":"~0.14.0"},"_id":"fs-plus@1.0.1","dist":{"shasum":"88c9ab8e4f5334aa5936a05f16b9d55b2bfac83d","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-1.0.1.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"2.0.0":{"name":"fs-plus","version":"2.0.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.19.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9","season":"~0.14.0"},"_id":"fs-plus@2.0.0","dist":{"shasum":"8b2a094aa5eb00deb6b5cc0ef11b0f80d607f1b5","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.0.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"2.0.1":{"name":"fs-plus","version":"2.0.1","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"~0.19.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.0.1","dist":{"shasum":"6cfb306c4f181e116745bc42c3389a95bd06b701","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.0.1.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"2.0.2":{"name":"fs-plus","version":"2.0.2","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.0.2","dist":{"shasum":"29b6160577fc17c7e38c72fefe80f04f300b5d73","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.0.2.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"}],"directories":{}},"2.0.3":{"name":"fs-plus","version":"2.0.3","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.0.3","dist":{"shasum":"594d062614ddf34f6b7a230f2da7706ca2dceefb","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.0.3.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"nathansobo","email":"nathansobo@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.0.4":{"name":"fs-plus","version":"2.0.4","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.0.4","dist":{"shasum":"321f78e3b754e3f634e3221789d8aa6e94610ddf","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.0.4.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.1.0":{"name":"fs-plus","version":"2.1.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.1.0","dist":{"shasum":"5e8d62e060e723dfb1fc09cd62dc6e186457504b","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.1.0.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.2.0":{"name":"fs-plus","version":"2.2.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.2.0","dist":{"shasum":"0703e4eb72983b0d0cf975b533c5623c8f1a0aea","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.2.0.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.2.1":{"name":"fs-plus","version":"2.2.1","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.2.1","dist":{"shasum":"1fc0621d4b8736909f0c95e5e9b1a592caf06f68","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.2.1.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.2.2":{"name":"fs-plus","version":"2.2.2","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.2.2","dist":{"shasum":"501b1aa1beede2acae4c162ea8597994c7dcd194","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.2.2.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.2.3":{"name":"fs-plus","version":"2.2.3","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.2.3","dist":{"shasum":"7dcdb0c4ff9beba3c4dc404e2c8a3284cfbec6f0","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.2.3.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.2.4":{"name":"fs-plus","version":"2.2.4","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.2.4","dist":{"shasum":"4d0803af3c9822f0a48b5b699125e138202882a5","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.2.4.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.2.5":{"name":"fs-plus","version":"2.2.5","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.2.5","dist":{"shasum":"e390a19e56dc37cec8e5fc226209526a0adc2a1a","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.2.5.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.2.6":{"name":"fs-plus","version":"2.2.6","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.2.6","dist":{"shasum":"9bba59b2041f7f446567d4ae658f12e12bf6a5eb","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.2.6.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.3.0":{"name":"fs-plus","version":"2.3.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"_id":"fs-plus@2.3.0","dist":{"shasum":"5a69c58c45e8f8be89711d678ed714efa25c5934","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.3.0.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"}],"directories":{}},"2.3.1":{"name":"fs-plus","version":"2.3.1","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"fdea4e6b36ca3adcdddadac5ca4bb7e0608562e8","_id":"fs-plus@2.3.1","_shasum":"b9dff9e90af175bf5687beb1574b4836121aafbe","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"b9dff9e90af175bf5687beb1574b4836121aafbe","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.3.1.tgz"},"directories":{}},"2.3.2":{"name":"fs-plus","version":"2.3.2","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"9c0b7ec93a4fd04471d988b966179f6a8aa1f355","_id":"fs-plus@2.3.2","_shasum":"beea9a8295c2fad4322cd6af2934a07de7e6052d","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"beea9a8295c2fad4322cd6af2934a07de7e6052d","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.3.2.tgz"},"directories":{}},"2.4.0":{"name":"fs-plus","version":"2.4.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"6ac4c265a11e44bdb85b6f494c9fcd31b7f9011c","_id":"fs-plus@2.4.0","_shasum":"28ea0e551f0afb70efc6fa92204e29b4eab7d902","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"28ea0e551f0afb70efc6fa92204e29b4eab7d902","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.4.0.tgz"},"directories":{}},"2.5.0":{"name":"fs-plus","version":"2.5.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.6.0"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"79f737abe6eeb126639eff7bccb92d8d40cb0b05","_id":"fs-plus@2.5.0","_shasum":"b6b1b75ce241ff730a2b7ada4225b2393053a906","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"b6b1b75ce241ff730a2b7ada4225b2393053a906","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.5.0.tgz"},"directories":{}},"2.6.0":{"name":"fs-plus","version":"2.6.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.8.1"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"a7ddecee34ae2e1d8d7794f3f049e2d8dbc5b962","_id":"fs-plus@2.6.0","_shasum":"f523f64fc4663bd92d3667be23674c1ad4b75c7a","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"f523f64fc4663bd92d3667be23674c1ad4b75c7a","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.6.0.tgz"},"directories":{}},"2.7.0":{"name":"fs-plus","version":"2.7.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.8.1"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"821662d5361c829b29503ade07308434db51629a","_id":"fs-plus@2.7.0","_shasum":"32c83d6bd0292be8e8d2afc8ea39a1aa9f6380fc","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"32c83d6bd0292be8e8d2afc8ea39a1aa9f6380fc","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.7.0.tgz"},"directories":{}},"2.7.1":{"name":"fs-plus","version":"2.7.1","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.8.1"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"b1b6f3ed46c0435464bb74b00010e9019db13ec4","_id":"fs-plus@2.7.1","_shasum":"fe68dab2403cd5f6235d200aeb84d611b5d0d03c","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"fe68dab2403cd5f6235d200aeb84d611b5d0d03c","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.7.1.tgz"},"directories":{}},"2.8.0":{"name":"fs-plus","version":"2.8.0","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.8.1"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"92d084b0b5a2d94b5088cb1ff257646491819ad7","_id":"fs-plus@2.8.0","_shasum":"293a12eb985eccd32796628f8c246bd769aea889","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"293a12eb985eccd32796628f8c246bd769aea889","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.8.0.tgz"},"directories":{}},"2.8.1":{"name":"fs-plus","version":"2.8.1","description":"node's fs with more helpers","main":"./lib/fs-plus.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"homepage":"http://atom.github.io/fs-plus","licenses":[{"type":"MIT","url":"http://github.com/atom/fs-plus/raw/master/LICENSE.md"}],"keywords":["fs","filesystem"],"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.8.1"},"dependencies":{"underscore-plus":"1.x","mkdirp":"~0.3.5","rimraf":"~2.2.2","async":"~0.2.9"},"gitHead":"eb4915c02f09427b1bb002b886a9cfc34a262e1f","_id":"fs-plus@2.8.1","_shasum":"60bcae0d2066f4bb4726f23add525dada80630f6","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"60bcae0d2066f4bb4726f23add525dada80630f6","tarball":"http://registry.npmjs.org/fs-plus/-/fs-plus-2.8.1.tgz"},"directories":{}}},"readme":"# fs plus [![Build Status](https://travis-ci.org/atom/fs-plus.svg?branch=master)](https://travis-ci.org/atom/fs-plus)\n\nYet another filesystem helper based on node's [fs](http://nodejs.org/api/fs.html)\nmodule.  This library exports everything from node's fs module but with some\nextra helpers.\n\n## Using\n\n```sh\nnpm install fs-plus\n```\n\n```coffee\nfs = require 'fs-plus'\n```\n\n## Documentation\n\n### `getHomeDirectory()`\nReturns the absolute path to the home directory.\n\n### `absolute(relativePath)`\nMake the given path absolute by resolving it against the current\nworking directory.\n\n### Params\n\n - **String** `relativePath`: The string representing the relative path. If the\n   path is prefixed with '~', it will be expanded to the current user's home\n   directory.\n\n### Return\n\n - **String**: The absolute path or the relative path if it's unable to\n   determine its real path.\n\n### `normalize(pathToNormalize)`\nNormalize the given path treating a leading `~` segment as referring to the\nhome directory. This method does not query the filesystem.\n\n#### Params\n\n - **String** `pathToNormalize`: The string containing the abnormal path. If the\n   path is prefixed with '~', it will be expanded to the current user's home\n   directory.\n\n#### Return\n - **String** Returns a normalized path.\n\n### `getAppDataDirectory()`\nGet path to store application specific data.\n\n#### Return\n - **String** Returns the absolute path or null if platform isn't supported\n\n    - Mac: `~/Library/Application Support/`\n    - Win: `%AppData%`\n    - Linux: `/var/lib`\n\n### `isAbsolute(pathToCheck)`\nIs the given path absolute?\n\n#### Params\n - **String** `pathToCheck`: The relative or absolute path to check.\n\n#### Return\n - **Bolean** Returns `true` if the path is absolute, `false` otherwise.\n\n### `existsSync(pathToCheck)`\nReturns `true` if a file or folder at the specified path exists.\n\n### `isDirectorySync(directoryPath)`\nReturns `true` if the given path exists and is a directory.\n\n### `isDirectory(directoryPath)`\nAsynchronously checks that the given path exists and is a directory.\n\n### `isFileSync(filePath)`\nReturns true if the specified path exists and is a file.\n\n### `isSymbolicLinkSync(symlinkPath)`\nReturns `true` if the specified path is a symbolic link.\n\n### `isSymbolicLink(symlinkPath, callback)`\nCalls back with `true` if the specified path is a symbolic link.\n\n### `isExecutableSync(pathToCheck)`\nReturns `true` if the specified path is executable.\n\n### `getSizeSync(pathToCheck)`\nReturns the size of the specified path.\n\n### `listSync(rootPath, extensions)`\nReturns an Array with the paths of the files and directories\ncontained within the directory path. It is not recursive.\n\n## Params\n - **String** `rootPath`: The absolute path to the directory to list.\n - **Array** `extensions`: An array of extensions to filter the results by. If none are\n   given, none are filtered (optional).\n\n### `list(rootPath, extensions)`\nAsynchronously lists the files and directories in the given path. The listing is not recursive.\n\n### `listTreeSync(rootPath)`\nGet all paths under the given path.\n\n#### Params\n - **String** `rootPath` The {String} path to start at.\n\n#### Return\n - **Array** Returns an array of strings under the given path.\n\n### `moveSync(source, target)`\nMoves the file or directory to the target synchronously.\n\n### `removeSync(pathToRemove)`\nRemoves the file or directory at the given path synchronously.\n\n### `writeFileSync(filePath, content, options)`\nOpen, write, flush, and close a file, writing the given content synchronously.\nIt also creates the necessary parent directories.\n\n### `writeFile(filePath, content, options, callback)`\nOpen, write, flush, and close a file, writing the given content\nasynchronously.\nIt also creates the necessary parent directories.\n\n### `copySync(sourcePath, destinationPath)`\nCopies the given path recursively and synchronously.\n\n### `makeTreeSync(directoryPath)`\nCreate a directory at the specified path including any missing\nparent directories synchronously.\n\n### `makeTree(directoryPath, callback)`\nCreate a directory at the specified path including any missing\nparent directories asynchronously.\n\n### `traverseTreeSync(rootPath, onFile, onDirectory)`\nRecursively walk the given path and execute the given functions\nsynchronously.\n\n#### Params\n - **String** `rootPath`: The string containing the directory to recurse into.\n - **Function** `onFile`: The function to execute on each file, receives a single argument\n   the absolute path.\n - **Function** `onDirectory`: The function to execute on each directory, receives a single\n   argument the absolute path (defaults to onFile). If this\n   function returns a falsy value then the directory is not\n   entered.\n\n### `traverseTree(rootPath, onFile, onDirectory, onDone)`\nPublic: Recursively walk the given path and execute the given functions\nasynchronously.\n\n### `md5ForPath(pathToDigest)`\nHashes the contents of the given file.\n\n#### Params\n - **String** `pathToDigest`: The string containing the absolute path.\n\n#### Return\n - **String** Returns a string containing the MD5 hexadecimal hash.\n\n### `resolve(loadPaths, pathToResolve, extensions)`\nFinds a relative path among the given array of paths.\n\n#### Params\n - **Array** `loadPaths`: An array of absolute and relative paths to search.\n - **String** `pathToResolve` The string containing the path to resolve.\n - **Array** `extensions` An array of extensions to pass to {resolveExtensions} in\n   which case pathToResolve should not contain an extension\n   (optional).\n\n#### Return\nReturns the absolute path of the file to be resolved if it's found and\nundefined otherwise.\n\n### `resolveOnLoadPath()`\nLike `.resolve` but uses node's modules paths as the load paths to\nsearch.\n\n### `resolveExtension(pathToResolve, extensions)`\nFinds the first file in the given path which matches the extension\nin the order given.\n\n#### Params\n - **String** `pathToResolve`: the string containing relative or absolute path of the\n   file in question without the extension or '.'.\n - **Array** `extensions`: the ordered array of extensions to try.\n\n#### Return\nReturns the absolute path of the file if it exists with any of the given\nextensions, otherwise it's undefined.\n\n### `isCompressedExtension(ext)`\nReturns true for extensions associated with compressed files.\n\n### `isImageExtension(ext)`\nReturns true for extensions associated with image files.\n\n### `isPdfExtension(ext)`\nReturns true for extensions associated with pdf files.\n\n### `isBinaryExtension(ext)`\nReturns true for extensions associated with binary files.\n\n### `isReadmePath(readmePath)`\nReturns true for files named similarily to 'README'\n\n### `isMarkdownExtension(ext)`\nReturns true for extensions associated with Markdown files.\n\n### `isCaseInsensitive()`\nIs the filesystem case insensitive?\nReturns `true` if case insensitive, `false` otherwise.\n\n### `isCaseSensitive()`\nIs the filesystem case sensitive?\nReturns `true` if case sensitive, `false` otherwise.\n","maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"time":{"modified":"2015-05-18T16:40:58.231Z","created":"2013-10-31T18:49:50.150Z","0.1.0":"2013-10-31T18:49:51.452Z","0.2.0":"2013-10-31T20:08:02.233Z","0.3.0":"2013-10-31T20:40:51.872Z","0.4.0":"2013-10-31T21:56:14.903Z","0.5.0":"2013-11-01T00:35:52.494Z","0.6.0":"2013-11-01T16:08:26.382Z","0.7.0":"2013-11-01T18:10:18.112Z","0.9.0":"2013-11-08T22:07:39.923Z","0.10.0":"2013-11-23T18:39:45.209Z","0.11.0":"2013-12-11T18:07:35.183Z","0.12.0":"2013-12-17T17:44:40.413Z","0.13.0":"2013-12-18T00:37:32.939Z","0.14.0":"2014-01-06T17:13:56.081Z","1.0.0":"2014-01-16T23:53:09.940Z","1.0.1":"2014-01-17T02:46:49.938Z","2.0.0":"2014-02-17T23:18:09.767Z","2.0.1":"2014-02-17T23:20:01.300Z","2.0.2":"2014-03-07T17:22:02.848Z","2.0.3":"2014-03-11T17:11:13.764Z","2.0.4":"2014-03-12T16:55:11.955Z","2.1.0":"2014-03-28T17:58:56.422Z","2.2.0":"2014-03-28T19:42:19.773Z","2.2.1":"2014-04-09T17:02:49.197Z","2.2.2":"2014-04-17T20:23:41.037Z","2.2.3":"2014-05-15T19:14:01.819Z","2.2.4":"2014-07-21T20:52:58.909Z","2.2.5":"2014-07-28T23:02:00.361Z","2.2.6":"2014-07-29T00:09:23.170Z","2.3.0":"2014-08-19T01:15:57.365Z","2.3.1":"2014-10-01T15:28:48.775Z","2.3.2":"2014-11-20T19:04:41.126Z","2.4.0":"2014-12-15T21:04:05.946Z","2.5.0":"2015-02-05T00:36:11.512Z","2.6.0":"2015-03-17T23:48:14.510Z","2.7.0":"2015-04-02T23:54:01.945Z","2.7.1":"2015-04-20T22:46:56.329Z","2.8.0":"2015-05-05T15:53:02.642Z","2.8.1":"2015-05-18T16:40:58.231Z"},"repository":{"type":"git","url":"https://github.com/atom/fs-plus.git"},"readmeFilename":"README.md","homepage":"http://atom.github.io/fs-plus","keywords":["fs","filesystem"],"bugs":{"url":"https://github.com/atom/fs-plus/issues"},"users":{"lezuse":true,"ergunozyurt":true,"thomasjo":true,"chocolateboy":true,"xgqfrms":true},"_attachments":{},"_etag":"\"1L9RVV7SW43USFDEUYOHA767T\""}
\ No newline at end of file
index dcb0e9b6ff78dc2194664ebf3aabbec32e488ab3..6432f5d92369bbda3298190551dd7816b88a0ba5 100644 (file)
@@ -1 +1 @@
-{"_id":"grim","_rev":"70-e64a267956bdf50facc0ff36cd0f2cbe","name":"grim","description":"Log usage of deprecated methods","dist-tags":{"latest":"1.4.1"},"versions":{"0.0.0":{"name":"grim","version":"0.0.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.0.0","dist":{"shasum":"d915da55af58229d41bf6851dd807fe672a4f54f","tarball":"http://registry.npmjs.org/grim/-/grim-0.0.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.1.0":{"name":"grim","version":"0.1.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.1.0","dist":{"shasum":"da6ee2d7a1d1466cb2f17c3efc271a9dcfb9a213","tarball":"http://registry.npmjs.org/grim/-/grim-0.1.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.2.0":{"name":"grim","version":"0.2.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.2.0","dist":{"shasum":"a5af7d54ea2adba64c8eaead301152300aba2b10","tarball":"http://registry.npmjs.org/grim/-/grim-0.2.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.4.0":{"name":"grim","version":"0.4.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.4.0","dist":{"shasum":"4e6eafb0b62ec2fba177c3ec1447630382c1d382","tarball":"http://registry.npmjs.org/grim/-/grim-0.4.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.6.0":{"name":"grim","version":"0.6.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.6.0","dist":{"shasum":"d8c301e2dfe18ac9595bf4feedbc862249ef8465","tarball":"http://registry.npmjs.org/grim/-/grim-0.6.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.7.0":{"name":"grim","version":"0.7.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.7.0","dist":{"shasum":"c509c13902a120e8149c55138309d8fdf88ac6d6","tarball":"http://registry.npmjs.org/grim/-/grim-0.7.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.8.0":{"name":"grim","version":"0.8.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.8.0","dist":{"shasum":"9f6b2b229cf537827a8ef2c1942a98cd6df41b0d","tarball":"http://registry.npmjs.org/grim/-/grim-0.8.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.9.0":{"name":"grim","version":"0.9.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.9.0","dist":{"shasum":"8271990398c43f14601f1d5b05c8bf701db45ac9","tarball":"http://registry.npmjs.org/grim/-/grim-0.9.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.10.0":{"name":"grim","version":"0.10.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"homepage":"https://github.com/atom/grim","_id":"grim@0.10.0","dist":{"shasum":"85e6f7c51c78952761e087a55fe273fdc87c6a71","tarball":"http://registry.npmjs.org/grim/-/grim-0.10.0.tgz"},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.11.0":{"name":"grim","version":"0.11.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"homepage":"https://github.com/atom/grim","_id":"grim@0.11.0","_shasum":"e203674bbe5fb62ae8301f191606df578e529b90","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"dist":{"shasum":"e203674bbe5fb62ae8301f191606df578e529b90","tarball":"http://registry.npmjs.org/grim/-/grim-0.11.0.tgz"},"directories":{}},"0.12.0":{"name":"grim","version":"0.12.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"c24f22a7e415d5d6b695967e341f7fb7aa27d83f","homepage":"https://github.com/atom/grim","_id":"grim@0.12.0","_shasum":"86d4ea11bf57b960688c624878bdc126fe4b7d1b","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"benogle","email":"ogle.ben@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"86d4ea11bf57b960688c624878bdc126fe4b7d1b","tarball":"http://registry.npmjs.org/grim/-/grim-0.12.0.tgz"},"directories":{}},"0.13.0":{"name":"grim","version":"0.13.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^0.7.0","emissary":"^1.2.0","underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"76eefa6fec31db8f573ed69f3312e4fa81d54b39","homepage":"https://github.com/atom/grim","_id":"grim@0.13.0","_shasum":"80557ca22e2294c8765eec8b349bc1da5b36c821","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"80557ca22e2294c8765eec8b349bc1da5b36c821","tarball":"http://registry.npmjs.org/grim/-/grim-0.13.0.tgz"},"directories":{}},"1.0.0":{"name":"grim","version":"1.0.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^0.7.0","emissary":"^1.2.0","underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"aebdddfbc62015ed943de3e144b06eb4cd849555","homepage":"https://github.com/atom/grim","_id":"grim@1.0.0","_shasum":"70281a77942fcf217b1aac3a7db90cbe9d1ceecf","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"70281a77942fcf217b1aac3a7db90cbe9d1ceecf","tarball":"http://registry.npmjs.org/grim/-/grim-1.0.0.tgz"},"directories":{}},"1.1.0":{"name":"grim","version":"1.1.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^0.7.0","emissary":"^1.2.0","underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"16c8bb826982d22801bfc56ea953c6ea7478ea1d","homepage":"https://github.com/atom/grim","_id":"grim@1.1.0","_shasum":"10d9518f9b48f73d358917dd7d21cf11d614c47c","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"10d9518f9b48f73d358917dd7d21cf11d614c47c","tarball":"http://registry.npmjs.org/grim/-/grim-1.1.0.tgz"},"directories":{}},"1.1.1":{"name":"grim","version":"1.1.1","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^0.8.0","emissary":"^1.2.0","underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"b2e0f708ed9de1470dc268f41bc0d30a698b3fbe","homepage":"https://github.com/atom/grim","_id":"grim@1.1.1","_shasum":"8f1c88789664d9f29fc5d2bef03cfa5bd5da0941","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"8f1c88789664d9f29fc5d2bef03cfa5bd5da0941","tarball":"http://registry.npmjs.org/grim/-/grim-1.1.1.tgz"},"directories":{}},"1.1.2":{"name":"grim","version":"1.1.2","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^1","emissary":"^1.2.0","underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"598fdb19fbcd3dffacfaf675ff31facfa1a9cb5e","homepage":"https://github.com/atom/grim","_id":"grim@1.1.2","_shasum":"cf3ad7096654a58127262dc069073e43d54a18ed","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"cf3ad7096654a58127262dc069073e43d54a18ed","tarball":"http://registry.npmjs.org/grim/-/grim-1.1.2.tgz"},"directories":{}},"1.2.0":{"name":"grim","version":"1.2.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^1","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"fc9442cb2033f82ca18d9d52a884237ce099142d","homepage":"https://github.com/atom/grim","_id":"grim@1.2.0","_shasum":"96d33ffe723ed8146a83ee169a8f230d4508369e","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"96d33ffe723ed8146a83ee169a8f230d4508369e","tarball":"http://registry.npmjs.org/grim/-/grim-1.2.0.tgz"},"directories":{}},"1.2.1":{"name":"grim","version":"1.2.1","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^1","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"2722002c17aa5564af195c2c458ad7f591417c59","homepage":"https://github.com/atom/grim","_id":"grim@1.2.1","_shasum":"b90d518e7e52e78ea3c35cb16efd7000046e6f18","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"b90d518e7e52e78ea3c35cb16efd7000046e6f18","tarball":"http://registry.npmjs.org/grim/-/grim-1.2.1.tgz"},"directories":{}},"1.2.2":{"name":"grim","version":"1.2.2","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^1","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"4deeda96353df9ea372986bd1e0aba24a0240df5","homepage":"https://github.com/atom/grim","_id":"grim@1.2.2","_shasum":"4af59c20cda16eb034676e2bfe64fd8be1f78450","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"4af59c20cda16eb034676e2bfe64fd8be1f78450","tarball":"http://registry.npmjs.org/grim/-/grim-1.2.2.tgz"},"directories":{}},"1.3.0":{"name":"grim","version":"1.3.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^1","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"dfbd634d33cab712a39d1652a92849b10a7efb6f","homepage":"https://github.com/atom/grim","_id":"grim@1.3.0","_shasum":"263032646242f665a96778d76639cb459bf178e1","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"263032646242f665a96778d76639cb459bf178e1","tarball":"http://registry.npmjs.org/grim/-/grim-1.3.0.tgz"},"directories":{}},"1.4.0":{"name":"grim","version":"1.4.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^1","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"1ad64d849598d9dbb7203d3a53d016082f895c1e","homepage":"https://github.com/atom/grim","_id":"grim@1.4.0","_shasum":"c58bbea14815bfe7939d586a1b813de6aed3a8e8","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"c58bbea14815bfe7939d586a1b813de6aed3a8e8","tarball":"http://registry.npmjs.org/grim/-/grim-1.4.0.tgz"},"directories":{}},"1.4.1":{"name":"grim","version":"1.4.1","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^1","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"dbcb234a130aaef6af1458bfa686f65c5b97690a","homepage":"https://github.com/atom/grim","_id":"grim@1.4.1","_shasum":"bd47bf11823bbfb1fc731914fab51016bea9e677","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"bd47bf11823bbfb1fc731914fab51016bea9e677","tarball":"http://registry.npmjs.org/grim/-/grim-1.4.1.tgz"},"directories":{}}},"readme":"# Grim [![Build Status](https://travis-ci.org/atom/grim.svg)](https://travis-ci.org/atom/grim)\n\nLog deprecate calls\n\n## Installing\n\n```sh\nnpm install grim\n```\n\n## Usage\n\n```javascript\nGrim = require('grim')\n\nfunction someOldMethod() {\n  Grim.deprecate(\"Use theNewMethod instead.\")\n}\n```\n\nTo view all calls to deprecated methods use `Grim.logDeprecations()` or get direct access to the deprecated calls by using `Grim.getDeprecations()`\n","maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"time":{"modified":"2015-05-13T22:26:15.557Z","created":"2014-04-01T22:38:09.263Z","0.0.0":"2014-04-01T22:38:11.466Z","0.1.0":"2014-04-01T22:39:23.387Z","0.2.0":"2014-04-01T23:56:09.004Z","0.4.0":"2014-04-02T23:52:09.489Z","0.6.0":"2014-04-03T17:15:23.781Z","0.7.0":"2014-04-11T23:28:50.618Z","0.8.0":"2014-04-14T21:41:31.900Z","0.9.0":"2014-04-18T00:33:33.285Z","0.10.0":"2014-04-23T01:29:06.673Z","0.11.0":"2014-06-11T23:18:58.911Z","0.12.0":"2014-08-13T20:47:48.254Z","0.13.0":"2014-12-30T22:34:35.933Z","1.0.0":"2015-01-02T19:25:11.250Z","1.1.0":"2015-01-09T01:43:17.541Z","1.1.1":"2015-02-11T00:56:51.763Z","1.1.2":"2015-02-12T19:05:51.899Z","1.2.0":"2015-02-19T19:19:27.810Z","1.2.1":"2015-03-30T22:34:13.870Z","1.2.2":"2015-04-21T23:20:52.692Z","1.3.0":"2015-04-28T16:51:46.374Z","1.4.0":"2015-04-29T00:12:20.333Z","1.4.1":"2015-05-13T22:26:15.557Z"},"readmeFilename":"README.md","repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"homepage":"https://github.com/atom/grim","_attachments":{},"_etag":"\"ENGXDMST6O59S4SVACS5Y4AHJ\""}
\ No newline at end of file
+{"_id":"grim","_rev":"71-e7f88507876079e9975d6c22d424104d","name":"grim","description":"Log usage of deprecated methods","dist-tags":{"latest":"1.4.2"},"versions":{"0.0.0":{"name":"grim","version":"0.0.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.0.0","dist":{"shasum":"d915da55af58229d41bf6851dd807fe672a4f54f","tarball":"http://registry.npmjs.org/grim/-/grim-0.0.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.1.0":{"name":"grim","version":"0.1.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.1.0","dist":{"shasum":"da6ee2d7a1d1466cb2f17c3efc271a9dcfb9a213","tarball":"http://registry.npmjs.org/grim/-/grim-0.1.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.2.0":{"name":"grim","version":"0.2.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.2.0","dist":{"shasum":"a5af7d54ea2adba64c8eaead301152300aba2b10","tarball":"http://registry.npmjs.org/grim/-/grim-0.2.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.4.0":{"name":"grim","version":"0.4.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.4.0","dist":{"shasum":"4e6eafb0b62ec2fba177c3ec1447630382c1d382","tarball":"http://registry.npmjs.org/grim/-/grim-0.4.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.6.0":{"name":"grim","version":"0.6.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.6.0","dist":{"shasum":"d8c301e2dfe18ac9595bf4feedbc862249ef8465","tarball":"http://registry.npmjs.org/grim/-/grim-0.6.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.7.0":{"name":"grim","version":"0.7.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.7.0","dist":{"shasum":"c509c13902a120e8149c55138309d8fdf88ac6d6","tarball":"http://registry.npmjs.org/grim/-/grim-0.7.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.8.0":{"name":"grim","version":"0.8.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.8.0","dist":{"shasum":"9f6b2b229cf537827a8ef2c1942a98cd6df41b0d","tarball":"http://registry.npmjs.org/grim/-/grim-0.8.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.9.0":{"name":"grim","version":"0.9.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"_id":"grim@0.9.0","dist":{"shasum":"8271990398c43f14601f1d5b05c8bf701db45ac9","tarball":"http://registry.npmjs.org/grim/-/grim-0.9.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.10.0":{"name":"grim","version":"0.10.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"homepage":"https://github.com/atom/grim","_id":"grim@0.10.0","dist":{"shasum":"85e6f7c51c78952761e087a55fe273fdc87c6a71","tarball":"http://registry.npmjs.org/grim/-/grim-0.10.0.tgz"},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"directories":{}},"0.11.0":{"name":"grim","version":"0.11.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"homepage":"https://github.com/atom/grim","_id":"grim@0.11.0","_shasum":"e203674bbe5fb62ae8301f191606df578e529b90","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"probablycorey","email":"probablycorey@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"}],"dist":{"shasum":"e203674bbe5fb62ae8301f191606df578e529b90","tarball":"http://registry.npmjs.org/grim/-/grim-0.11.0.tgz"},"directories":{}},"0.12.0":{"name":"grim","version":"0.12.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"underscore-plus":"^1.0.0","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"c24f22a7e415d5d6b695967e341f7fb7aa27d83f","homepage":"https://github.com/atom/grim","_id":"grim@0.12.0","_shasum":"86d4ea11bf57b960688c624878bdc126fe4b7d1b","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"benogle","email":"ogle.ben@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"86d4ea11bf57b960688c624878bdc126fe4b7d1b","tarball":"http://registry.npmjs.org/grim/-/grim-0.12.0.tgz"},"directories":{}},"0.13.0":{"name":"grim","version":"0.13.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^0.7.0","emissary":"^1.2.0","underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"76eefa6fec31db8f573ed69f3312e4fa81d54b39","homepage":"https://github.com/atom/grim","_id":"grim@0.13.0","_shasum":"80557ca22e2294c8765eec8b349bc1da5b36c821","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"80557ca22e2294c8765eec8b349bc1da5b36c821","tarball":"http://registry.npmjs.org/grim/-/grim-0.13.0.tgz"},"directories":{}},"1.0.0":{"name":"grim","version":"1.0.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^0.7.0","emissary":"^1.2.0","underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"aebdddfbc62015ed943de3e144b06eb4cd849555","homepage":"https://github.com/atom/grim","_id":"grim@1.0.0","_shasum":"70281a77942fcf217b1aac3a7db90cbe9d1ceecf","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"70281a77942fcf217b1aac3a7db90cbe9d1ceecf","tarball":"http://registry.npmjs.org/grim/-/grim-1.0.0.tgz"},"directories":{}},"1.1.0":{"name":"grim","version":"1.1.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^0.7.0","emissary":"^1.2.0","underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"16c8bb826982d22801bfc56ea953c6ea7478ea1d","homepage":"https://github.com/atom/grim","_id":"grim@1.1.0","_shasum":"10d9518f9b48f73d358917dd7d21cf11d614c47c","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"10d9518f9b48f73d358917dd7d21cf11d614c47c","tarball":"http://registry.npmjs.org/grim/-/grim-1.1.0.tgz"},"directories":{}},"1.1.1":{"name":"grim","version":"1.1.1","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^0.8.0","emissary":"^1.2.0","underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"b2e0f708ed9de1470dc268f41bc0d30a698b3fbe","homepage":"https://github.com/atom/grim","_id":"grim@1.1.1","_shasum":"8f1c88789664d9f29fc5d2bef03cfa5bd5da0941","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"8f1c88789664d9f29fc5d2bef03cfa5bd5da0941","tarball":"http://registry.npmjs.org/grim/-/grim-1.1.1.tgz"},"directories":{}},"1.1.2":{"name":"grim","version":"1.1.2","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^1","emissary":"^1.2.0","underscore-plus":"^1.0.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"598fdb19fbcd3dffacfaf675ff31facfa1a9cb5e","homepage":"https://github.com/atom/grim","_id":"grim@1.1.2","_shasum":"cf3ad7096654a58127262dc069073e43d54a18ed","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"cf3ad7096654a58127262dc069073e43d54a18ed","tarball":"http://registry.npmjs.org/grim/-/grim-1.1.2.tgz"},"directories":{}},"1.2.0":{"name":"grim","version":"1.2.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^1","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"fc9442cb2033f82ca18d9d52a884237ce099142d","homepage":"https://github.com/atom/grim","_id":"grim@1.2.0","_shasum":"96d33ffe723ed8146a83ee169a8f230d4508369e","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"96d33ffe723ed8146a83ee169a8f230d4508369e","tarball":"http://registry.npmjs.org/grim/-/grim-1.2.0.tgz"},"directories":{}},"1.2.1":{"name":"grim","version":"1.2.1","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^1","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"2722002c17aa5564af195c2c458ad7f591417c59","homepage":"https://github.com/atom/grim","_id":"grim@1.2.1","_shasum":"b90d518e7e52e78ea3c35cb16efd7000046e6f18","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"b90d518e7e52e78ea3c35cb16efd7000046e6f18","tarball":"http://registry.npmjs.org/grim/-/grim-1.2.1.tgz"},"directories":{}},"1.2.2":{"name":"grim","version":"1.2.2","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^1","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"4deeda96353df9ea372986bd1e0aba24a0240df5","homepage":"https://github.com/atom/grim","_id":"grim@1.2.2","_shasum":"4af59c20cda16eb034676e2bfe64fd8be1f78450","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"4af59c20cda16eb034676e2bfe64fd8be1f78450","tarball":"http://registry.npmjs.org/grim/-/grim-1.2.2.tgz"},"directories":{}},"1.3.0":{"name":"grim","version":"1.3.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^1","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"dfbd634d33cab712a39d1652a92849b10a7efb6f","homepage":"https://github.com/atom/grim","_id":"grim@1.3.0","_shasum":"263032646242f665a96778d76639cb459bf178e1","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"263032646242f665a96778d76639cb459bf178e1","tarball":"http://registry.npmjs.org/grim/-/grim-1.3.0.tgz"},"directories":{}},"1.4.0":{"name":"grim","version":"1.4.0","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^1","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"1ad64d849598d9dbb7203d3a53d016082f895c1e","homepage":"https://github.com/atom/grim","_id":"grim@1.4.0","_shasum":"c58bbea14815bfe7939d586a1b813de6aed3a8e8","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"c58bbea14815bfe7939d586a1b813de6aed3a8e8","tarball":"http://registry.npmjs.org/grim/-/grim-1.4.0.tgz"},"directories":{}},"1.4.1":{"name":"grim","version":"1.4.1","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"coffeestack":"^1","emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"dbcb234a130aaef6af1458bfa686f65c5b97690a","homepage":"https://github.com/atom/grim","_id":"grim@1.4.1","_shasum":"bd47bf11823bbfb1fc731914fab51016bea9e677","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"bd47bf11823bbfb1fc731914fab51016bea9e677","tarball":"http://registry.npmjs.org/grim/-/grim-1.4.1.tgz"},"directories":{}},"1.4.2":{"name":"grim","version":"1.4.2","description":"Log usage of deprecated methods","main":"./lib/grim","scripts":{"prepublish":"grunt clean lint coffee","test":"grunt test"},"repository":{"type":"git","url":"git+https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"licenses":[{"type":"MIT","url":"http://github.com/atom/grim/raw/master/LICENSE.md"}],"dependencies":{"emissary":"^1.2.0"},"devDependencies":{"coffee-script":"^1.7.0","jasmine-focused":"^1.0.4","grunt-contrib-coffee":"^0.9.0","grunt-cli":"^0.1.8","grunt":"^0.4.1","grunt-shell":"^0.2.2","grunt-coffeelint":"^0.0.6","rimraf":"^2.2.2","coffee-cache":"^0.2.0","temp":"^0.6.0"},"gitHead":"82c45ef794ce93e4455c29365441c62bf94b90a8","homepage":"https://github.com/atom/grim#readme","_id":"grim@1.4.2","_shasum":"b33abee33ec351bab8695818d511a049ca62ef04","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"nathansobo","email":"nathan@github.com"},"maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"dist":{"shasum":"b33abee33ec351bab8695818d511a049ca62ef04","tarball":"http://registry.npmjs.org/grim/-/grim-1.4.2.tgz"},"directories":{}}},"readme":"# Grim [![Build Status](https://travis-ci.org/atom/grim.svg)](https://travis-ci.org/atom/grim)\n\nLog deprecate calls\n\n## Installing\n\n```sh\nnpm install grim\n```\n\n## Usage\n\n```javascript\nGrim = require('grim')\n\nfunction someOldMethod() {\n  Grim.deprecate(\"Use theNewMethod instead.\")\n}\n```\n\nTo view all calls to deprecated methods use `Grim.logDeprecations()` or get direct access to the deprecated calls by using `Grim.getDeprecations()`\n","maintainers":[{"name":"probablycorey","email":"probablycorey@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathan@github.com"}],"time":{"modified":"2015-08-20T19:34:58.432Z","created":"2014-04-01T22:38:09.263Z","0.0.0":"2014-04-01T22:38:11.466Z","0.1.0":"2014-04-01T22:39:23.387Z","0.2.0":"2014-04-01T23:56:09.004Z","0.4.0":"2014-04-02T23:52:09.489Z","0.6.0":"2014-04-03T17:15:23.781Z","0.7.0":"2014-04-11T23:28:50.618Z","0.8.0":"2014-04-14T21:41:31.900Z","0.9.0":"2014-04-18T00:33:33.285Z","0.10.0":"2014-04-23T01:29:06.673Z","0.11.0":"2014-06-11T23:18:58.911Z","0.12.0":"2014-08-13T20:47:48.254Z","0.13.0":"2014-12-30T22:34:35.933Z","1.0.0":"2015-01-02T19:25:11.250Z","1.1.0":"2015-01-09T01:43:17.541Z","1.1.1":"2015-02-11T00:56:51.763Z","1.1.2":"2015-02-12T19:05:51.899Z","1.2.0":"2015-02-19T19:19:27.810Z","1.2.1":"2015-03-30T22:34:13.870Z","1.2.2":"2015-04-21T23:20:52.692Z","1.3.0":"2015-04-28T16:51:46.374Z","1.4.0":"2015-04-29T00:12:20.333Z","1.4.1":"2015-05-13T22:26:15.557Z","1.4.2":"2015-08-20T19:34:58.432Z"},"readmeFilename":"README.md","repository":{"type":"git","url":"git+https://github.com/atom/grim.git"},"bugs":{"url":"https://github.com/atom/grim/issues"},"homepage":"https://github.com/atom/grim#readme","_attachments":{},"_etag":"\"5GZC77AQTZEX1C7ZWUMC5I6FB\""}
\ No newline at end of file
index 8c1524d20d9719da402bdf62ba15ebc03d3eb141..6da5fa116c035690d0ea5d98ba507880fa1bec46 100644 (file)
@@ -1 +1 @@
-{"_id":"jquery","_rev":"227-b31f75428b97fc29a534967f39a4cc5d","name":"jquery","description":"JavaScript library for DOM operations","dist-tags":{"beta":"2.1.4","latest":"2.1.4","old":"1.9.1","compat":"1.11.3"},"versions":{"1.5.1":{"name":"jquery","description":"jQuery: The Write Less, Do More, JavaScript Library","url":"jquery.com","keywords":["util","dom","jquery"],"author":{"name":"John Resig","email":"jeresig@gmail.com"},"contributors":[],"dependencies":{"jsdom":"=0.1.20","htmlparser":">= 1.7.3"},"lib":"lib","main":"./dist/node-jquery.js","version":"1.5.1","_id":"jquery@1.5.1","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.15","_nodeVersion":"v0.4.2","directories":{"lib":"./lib"},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"2ae2d661e906c1a01e044a71bb5b2743942183e5","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.5.1.tgz"}},"1.6.2":{"name":"jquery","description":"jQuery: The Write Less, Do More, JavaScript Library","url":"jquery.com","keywords":["util","dom","jquery"],"author":{"name":"John Resig","email":"jeresig@gmail.com"},"contributors":[],"dependencies":{"jsdom":">=0.2.0","htmlparser":">= 1.7.3"},"lib":"lib","main":"./dist/node-jquery.js","version":"1.6.2","_npmJsonOpts":{"file":"/Users/coolaj86/.npm/jquery/1.6.2/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"jquery@1.6.2","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.15","_nodeVersion":"v0.4.8","_defaultsLoaded":true,"dist":{"shasum":"01757a4c5beea29e8ae697527c3131abbe997a28","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.6.2.tgz"},"scripts":{},"directories":{}},"1.6.3":{"name":"jquery","description":"jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)","url":"http://jquery.com","keywords":["util","dom","jquery"],"author":{"name":"John Resig","email":"jeresig@gmail.com"},"contributors":[],"dependencies":{"jsdom":">=0.2.0","htmlparser":">= 1.7.3"},"lib":".","main":"./node-jquery.js","version":"1.6.3","_npmJsonOpts":{"file":"/Users/coolaj86/.npm/jquery/1.6.3/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"jquery@1.6.3","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.22","_nodeVersion":"v0.4.8","_defaultsLoaded":true,"dist":{"shasum":"e1f732fa7e718a6adb3ec20ae0eb2a64fd95ef01","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.6.3.tgz"},"scripts":{},"maintainers":[{"name":"coolaj86","email":"coolaj86@gmail.com"}],"directories":{}},"1.7.2":{"name":"jquery","description":"jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)","version":"1.7.2","url":"http://jquery.com","homepage":"https://github.com/coolaj86/node-jquery","author":{"name":"James Morrin","email":"treasonx@gmail.com"},"repository":{"type":"git","url":"git://github.com/coolaj86/node-jquery.git"},"bugs":{"url":"https://github.com/coolaj86/node-jquery/issues"},"licenses":[{"type":"MIT","url":"https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT"}],"main":"lib/node-jquery","engines":{"node":"0.6"},"scripts":{"test":"grunt test"},"dependencies":{"jsdom":"~0.2.14","htmlparser":"1.7.6","xmlhttprequest":"~1.3.0"},"devDependencies":{"grunt":"~0.3.8","nodeunit":"~0.7.4"},"keywords":["util","dom","jquery"],"_npmUser":{"name":"treasonx","email":"treasonx@gmail.com"},"_id":"jquery@1.7.2","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.12","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"a93746763aca75a34df4c16395b0826310d0eaf2","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.7.2.tgz"},"maintainers":[{"name":"coolaj86","email":"coolaj86@gmail.com"},{"name":"treasonx","email":"treasonx@gmail.com"}],"directories":{}},"1.7.3":{"name":"jquery","description":"jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)","version":"1.7.3","url":"http://jquery.com","homepage":"https://github.com/coolaj86/node-jquery","author":{"name":"James Morrin","email":"treasonx@gmail.com"},"repository":{"type":"git","url":"git://github.com/coolaj86/node-jquery.git"},"bugs":{"url":"https://github.com/coolaj86/node-jquery/issues"},"licenses":[{"type":"MIT","url":"https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT"}],"main":"lib/node-jquery","engines":{"node":">=0.6"},"scripts":{"test":"grunt test"},"dependencies":{"jsdom":"~0.2.14","htmlparser":"1.7.6","xmlhttprequest":"~1.4.2","location":"0.0.1","navigator":"~1.0.1"},"devDependencies":{"grunt":"~0.3.8","nodeunit":"~0.7.4"},"keywords":["util","dom","jquery"],"_id":"jquery@1.7.3","dist":{"shasum":"e3d00a71612ac7e9b554b438e0987d0272ddba94","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.7.3.tgz"},"maintainers":[{"name":"coolaj86","email":"coolaj86@gmail.com"},{"name":"treasonx","email":"treasonx@gmail.com"}],"directories":{}},"1.8.2":{"name":"jquery","description":"jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)","version":"1.8.2","url":"http://jquery.com","homepage":"https://github.com/coolaj86/node-jquery","author":{"name":"James Morrin","email":"treasonx@gmail.com"},"repository":{"type":"git","url":"git://github.com/coolaj86/node-jquery.git"},"bugs":{"url":"https://github.com/coolaj86/node-jquery/issues"},"licenses":[{"type":"MIT","url":"https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT"}],"main":"lib/node-jquery","engines":{"node":">=0.6"},"scripts":{"test":"grunt test"},"dependencies":{"jsdom":"~0.2.14","htmlparser":"1.7.6","xmlhttprequest":"~1.4.2","location":"0.0.1","navigator":"~1.0.1"},"devDependencies":{"grunt":"~0.3.8","nodeunit":"~0.7.4"},"keywords":["util","dom","jquery"],"_id":"jquery@1.8.2","dist":{"shasum":"46790ae07c6de38124eda90bbf7336b43df93305","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.8.2.tgz"},"_npmVersion":"1.1.61","_npmUser":{"name":"treasonx","email":"treasonx@gmail.com"},"maintainers":[{"name":"coolaj86","email":"coolaj86@gmail.com"},{"name":"treasonx","email":"treasonx@gmail.com"}],"directories":{}},"1.8.3":{"name":"jquery","description":"jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)","version":"1.8.3","url":"http://jquery.com","homepage":"https://github.com/coolaj86/node-jquery","author":{"name":"James Morrin","email":"treasonx@gmail.com"},"repository":{"type":"git","url":"git://github.com/coolaj86/node-jquery.git"},"bugs":{"url":"https://github.com/coolaj86/node-jquery/issues"},"licenses":[{"type":"MIT","url":"https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT"}],"main":"lib/node-jquery","engines":{"node":">=0.6"},"scripts":{"test":"grunt test"},"dependencies":{"jsdom":"~0.2.14","htmlparser":"1.7.6","xmlhttprequest":"~1.4.2","location":"0.0.1","navigator":"~1.0.1","contextify":"~0.1.3"},"devDependencies":{"grunt":"~0.3.8","nodeunit":"~0.7.4"},"keywords":["util","dom","jquery"],"_id":"jquery@1.8.3","dist":{"shasum":"cfa2941c05a83d966f21347f759a6d15281c60cc","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.8.3.tgz"},"_npmVersion":"1.1.61","_npmUser":{"name":"treasonx","email":"treasonx@gmail.com"},"maintainers":[{"name":"coolaj86","email":"coolaj86@gmail.com"},{"name":"treasonx","email":"treasonx@gmail.com"}],"directories":{}},"2.1.0-beta2":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.0-beta2","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/master/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"archiver":"~0.4.10","grunt":"~0.4.1","grunt-bower-task":"~0.3.2","grunt-cli":"~0.1.11","grunt-compare-size":"~0.4.0","grunt-contrib-jshint":"~0.7.0","grunt-contrib-uglify":"~0.2.7","grunt-contrib-watch":"~0.5.3","grunt-git-authors":"~1.2.0","grunt-jscs-checker":"~0.2.3","grunt-jsonlint":"~1.0.1","gzip-js":"0.3.2","load-grunt-tasks":"~0.2.0","testswarm":"~1.1.0","requirejs":"~2.1.9","which":"~1.0.5"},"_id":"jquery@2.1.0-beta2","dist":{"shasum":"e0fbbe2beb45b4d8f808362c7c99ef5bfee7d8c6","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.0-beta2.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"jquery","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"rwaldron","email":"waldron.rick@gmail.com"},{"name":"jquery","email":"npm@jquery.com"}],"directories":{}},"2.1.0-beta3":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.0-beta3","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.0-beta3/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.0-beta3/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.4.1","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@2.1.0-beta3","dist":{"shasum":"5a89b624d8fa625fe5fa83a12a9acb1ef8a11d02","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.0-beta3.tgz"},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jquery","email":"npm@jquery.org"},"maintainers":[{"name":"jquery","email":"npm@jquery.org"}],"directories":{}},"1.11.0-beta3":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.0-beta3","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.0-beta3/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.0-beta3/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.4.1","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@1.11.0-beta3","dist":{"shasum":"0464a6aba9f35f6c83a203caa23ab420909ce852","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.0-beta3.tgz"},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jquery","email":"npm@jquery.org"},"maintainers":[{"name":"jquery","email":"npm@jquery.org"}],"directories":{}},"1.11.0-rc1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.0-rc1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.0-rc1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.0-rc1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.5.0","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@1.11.0-rc1","dist":{"shasum":"c2f6a4877374647b20b080c478d8dbcdfb4960ee","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.0-rc1.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"jquery","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"jquery","email":"dave.methvin@gmail.com"}],"directories":{}},"2.1.0-rc1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.0-rc1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.0-rc1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.0-rc1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.5.0","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@2.1.0-rc1","dist":{"shasum":"8c9f5d9a055c2fedb3f5269617ae649497d6a3b0","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.0-rc1.tgz"},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},"maintainers":[{"name":"jquery","email":"npm@jquery.com"},{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"}],"directories":{}},"1.11.0":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.0","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.0/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.0/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.5.0","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@1.11.0","dist":{"shasum":"c67ceee19b403650d682adcf39d5c9009814d949","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.0.tgz"},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jquery","email":"npm@jquery.org"},"maintainers":[{"name":"jquery","email":"npm@jquery.org"}],"directories":{}},"2.1.0":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.0","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.0/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.0/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.5.0","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@2.1.0","dist":{"shasum":"1c9a8c971d2b53dae10d72e16cbb5a1df16a4ace","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.0.tgz"},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jquery","email":"npm@jquery.org"},"maintainers":[{"name":"jquery","email":"npm@jquery.org"}],"directories":{}},"2.1.1-beta1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.1-beta1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.1-beta1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.1-beta1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.3.2","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@2.1.1-beta1","dist":{"shasum":"6306c8ea1d104775f3ef8f5c26f0a32acd710a11","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.1-beta1.tgz"},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"m_gol","email":"m.goleb@gmail.com"},"maintainers":[{"name":"jquery","email":"npm@jquery.com"},{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"directories":{}},"1.11.1-beta1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.1-beta1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.1-beta1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.1-beta1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.3.2","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@1.11.1-beta1","dist":{"shasum":"c7eacde5e1ae06e029f1cd1b2dd444953a33e843","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.1-beta1.tgz"},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"m_gol","email":"m.goleb@gmail.com"},"maintainers":[{"name":"jquery","email":"npm@jquery.com"},{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"directories":{}},"2.1.1-rc1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.1-rc1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.1-rc1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.1-rc1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@2.1.1-rc1","_shasum":"95c494fdbbd0cefc305260e11ad46ae49a387c3d","_from":".","_npmVersion":"1.4.7","_npmUser":{"name":"m_gol","email":"m.goleb@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"dist":{"shasum":"95c494fdbbd0cefc305260e11ad46ae49a387c3d","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.1-rc1.tgz"},"directories":{}},"1.11.1-rc1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.1-rc1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.1-rc1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.1-rc1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@1.11.1-rc1","_shasum":"666a7df02488b48732d96e8ab9bdd34f61dd4238","_from":".","_npmVersion":"1.4.7","_npmUser":{"name":"m_gol","email":"m.goleb@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"dist":{"shasum":"666a7df02488b48732d96e8ab9bdd34f61dd4238","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.1-rc1.tgz"},"directories":{}},"2.1.1-rc2":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.1-rc2","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.1-rc2/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.1-rc2/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@2.1.1-rc2","dist":{"shasum":"99833e415efa7ac8a4efecc5df6894b2f938a598","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.1-rc2.tgz"},"_from":".","_npmVersion":"1.2.25","_npmUser":{"name":"dmethvin","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"directories":{}},"1.11.1-rc2":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.1-rc2","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.1-rc2/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.1-rc2/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@1.11.1-rc2","dist":{"shasum":"a4ef3edde0864d8524c5e72f59c459fd7a9ebd17","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.1-rc2.tgz"},"_from":".","_npmVersion":"1.2.25","_npmUser":{"name":"dmethvin","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"directories":{}},"2.1.1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@2.1.1","dist":{"shasum":"828fc60f50f7ee5983363ef4eb01c5f70af4bd5b","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.1.tgz"},"_from":".","_npmVersion":"1.2.25","_npmUser":{"name":"dmethvin","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"directories":{}},"1.11.1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@1.11.1","dist":{"shasum":"b6ec928590112ebed69e1e49cbfd0025ccd60ddb","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.1.tgz"},"_from":".","_npmVersion":"1.2.25","_npmUser":{"name":"dmethvin","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"directories":{}},"1.9.1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.9.1","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/master/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt"}],"scripts":{"test":"grunt"},"dependencies":{},"devDependencies":{"grunt-compare-size":"~0.3.0","grunt-git-authors":"~1.1.0","grunt-update-submodules":"~0.2.0","grunt-contrib-watch":"~0.1.1","grunt-contrib-jshint":"~0.1.1","grunt-contrib-uglify":"~0.1.1","grunt":"~0.4.0","testswarm":"0.2.2"},"keywords":[],"gitHead":"d71f6a53927ad02d728503385d15539b73d21ac8","_id":"jquery@1.9.1","_shasum":"e4cd4835faaefbade535857613c0fc3ff2adaf34","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"timmywil","email":"timmywillisn@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"dist":{"shasum":"e4cd4835faaefbade535857613c0fc3ff2adaf34","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.9.1.tgz"},"directories":{}},"2.1.2":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.2","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.2/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.2/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"gitHead":"a04f5ff9795fd6292117563623db44cf3f875868","_id":"jquery@2.1.2","_shasum":"b68f154cb2ea4731924883e9fe20ec199d1dc1e2","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dmethvin","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"dist":{"shasum":"b68f154cb2ea4731924883e9fe20ec199d1dc1e2","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.2.tgz"},"directories":{}},"1.11.2":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.2","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.2/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.2/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"2.0.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"gitHead":"9690801db01709bfbff5f977d07fb7cc14472908","_id":"jquery@1.11.2","_shasum":"30ab26857211c37caa83da0f6903155fe49bb72d","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dmethvin","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"dist":{"shasum":"30ab26857211c37caa83da0f6903155fe49bb72d","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.2.tgz"},"directories":{}},"2.1.3":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.3","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.3/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.3/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"2.0.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","jsdom":"1.5.0","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"gitHead":"8f2a9d9272d6ed7f32d3a484740ab342c02541e0","_id":"jquery@2.1.3","_shasum":"6ec55204673d505d39432c5bf5cfad10e1dbad2e","_from":".","_npmVersion":"2.1.14","_nodeVersion":"0.11.14","_npmUser":{"name":"m_gol","email":"m.goleb@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"dist":{"shasum":"6ec55204673d505d39432c5bf5cfad10e1dbad2e","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.3.tgz"},"directories":{}},"2.1.4":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.4","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.4/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.4/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"2.0.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","jsdom":"1.5.0","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"gitHead":"7751e69b615c6eca6f783a81e292a55725af6b85","_id":"jquery@2.1.4","_shasum":"228bde698a0c61431dc2630a6a154f15890d2317","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"timmywil","email":"timmywillisn@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"dist":{"shasum":"228bde698a0c61431dc2630a6a154f15890d2317","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz"},"directories":{}},"1.11.3":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.3","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.3/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.3/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"2.0.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"gitHead":"1472290917f17af05e98007136096784f9051fab","_id":"jquery@1.11.3","_shasum":"dd8b74278b27102d29df63eae28308a8cfa1b583","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"timmywil","email":"timmywillisn@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"dist":{"shasum":"dd8b74278b27102d29df63eae28308a8cfa1b583","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.3.tgz"},"directories":{}}},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"time":{"modified":"2015-04-28T16:22:06.378Z","created":"2011-03-19T07:19:56.392Z","1.5.1":"2011-03-19T07:19:56.956Z","1.6.2":"2011-07-06T16:13:21.519Z","1.6.3":"2011-09-12T19:05:34.373Z","1.7.2":"2012-05-01T11:14:09.090Z","1.7.3":"2012-07-01T16:11:53.194Z","1.8.2":"2012-11-11T22:43:58.910Z","1.8.3":"2012-12-01T00:03:02.297Z","2.1.0-beta2":"2013-11-15T16:34:48.859Z","2.1.0-beta3":"2013-12-20T22:53:28.426Z","1.11.0-beta3":"2014-01-06T19:57:22.387Z","2.1.0-rc1":"2014-01-17T22:47:16.391Z","1.11.0-pre":"2014-01-16T20:38:42.912Z","1.11.0-rc1":"2014-01-16T21:08:36.924Z","1.11.0":"2014-01-23T21:07:07.184Z","2.1.0":"2014-01-23T21:12:47.772Z","2.1.1-beta1":"2014-03-24T17:05:07.581Z","1.11.1-beta1":"2014-03-24T17:25:14.236Z","2.1.1-rc1":"2014-04-18T15:29:41.423Z","1.11.1-rc1":"2014-04-18T15:40:23.931Z","2.1.1-rc2":"2014-04-21T20:52:06.866Z","1.11.1-rc2":"2014-04-21T21:12:52.817Z","2.1.1":"2014-05-01T17:15:20.164Z","1.11.1":"2014-05-01T18:05:32.863Z","1.9.1":"2014-07-17T22:01:17.886Z","2.1.2":"2014-12-17T14:14:28.184Z","1.11.2":"2014-12-17T16:07:07.647Z","2.1.3":"2014-12-18T15:18:38.205Z","2.1.4":"2015-04-28T16:17:13.648Z","1.11.3":"2015-04-28T16:22:06.378Z"},"author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.4/AUTHORS.txt"},"users":{"dodo":true,"fgribreau":true,"parroit":true,"cedx":true,"m_gol":true,"feross":true,"bendiken":true,"funroll":true,"inancgumus":true,"jkcpr":true,"magemagic":true,"davidbaiguini":true,"shen-weizhong":true,"oroce":true,"beth_rogers465":true,"leobalter":true,"frk1705":true,"victorcastelan":true,"skinnybrit51":true,"tommyjs7":true,"xanderiel":true,"arturmuller":true,"lukecarrier":true,"bjlxj_2008":true,"kmck":true,"jesus81":true,"rpgreen":true,"vsn4ik":true,"gabrielsanterre":true,"adswebwork":true,"abuelwafa":true,"karlitowhoelse":true,"mhat":true,"tektimmy":true,"modest":true,"rgraves90":true,"alexandermac":true,"adamk":true,"nitayneeman":true,"haeck":true,"pnevares":true,"hal9zillion":true,"j3kz":true,"wambulance":true,"jostw":true,"sahilsk":true,"broxmgs":true,"jimster305":true,"csbun":true,"isis97":true,"simplyianm":true,"fatelei":true,"trotyl":true,"chengsu":true,"orlenka":true,"mr_eaze":true,"jmm23":true,"ackuser":true,"tfentonz":true,"ftornik":true,"onheiron":true,"jgreeley":true,"sedmonds":true,"cycomachead":true,"duchenerc":true,"damianof":true,"sergiodxa":true,"rhythm19":true,"piotrd":true,"buzuli":true},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"readme":"[jQuery](http://jquery.com/) - New Wave JavaScript\n==================================================\n\nContribution Guides\n--------------------------------------\n\nIn the spirit of open source software development, jQuery always encourages community code contribution. To help you get started and before you jump into writing code, be sure to read these important contribution guidelines thoroughly:\n\n1. [Getting Involved](http://contribute.jquery.org/)\n2. [Core Style Guide](http://contribute.jquery.org/style-guide/js/)\n3. [Writing Code for jQuery Foundation Projects](http://contribute.jquery.org/code/)\n\n\nEnvironments in which to use jQuery\n--------------------------------------\n\n- [Browser support](http://jquery.com/browser-support/) differs between the master (2.x) branch and the 1.x-master branch. Specifically, 2.x does not support legacy browsers such as IE6-8. The jQuery team continues to provide support for legacy browsers on the 1.x-master branch. Use the latest 1.x release if support for those browsers is required. See [browser support](http://jquery.com/browser-support/) for more info.\n- To use jQuery in Node, browser extensions, and other non-browser environments, use only **2.x** releases. 1.x does not support these environments.\n\n\nWhat you need to build your own jQuery\n--------------------------------------\n\nIn order to build jQuery, you need to have Node.js/npm latest and git 1.7 or later.\n(Earlier versions might work OK, but are not tested.)\n\nFor Windows you have to download and install [git](http://git-scm.com/downloads) and [Node.js](http://nodejs.org/download/).\n\nMac OS users should install [Homebrew](http://mxcl.github.com/homebrew/). Once Homebrew is installed, run `brew install git` to install git,\nand `brew install node` to install Node.js.\n\nLinux/BSD users should use their appropriate package managers to install git and Node.js, or build from source\nif you swing that way. Easy-peasy.\n\n\nHow to build your own jQuery\n----------------------------\n\nClone a copy of the main jQuery git repo by running:\n\n```bash\ngit clone git://github.com/jquery/jquery.git\n```\n\nEnter the jquery directory and run the build script:\n```bash\ncd jquery && npm run build\n```\nThe built version of jQuery will be put in the `dist/` subdirectory, along with the minified copy and associated map file.\n\nIf you want create custom build or help with jQuery development, it would be better to install [grunt command line interface](https://github.com/gruntjs/grunt-cli) as a global package:\n\n```\nnpm install -g grunt-cli\n```\nMake sure you have `grunt` installed by testing:\n```\ngrunt -v\n```\n\nNow by running `grunt` command, in the jquery directory, you could build full version of jQuery, just like with `npm run build` command:\n```\ngrunt\n```\n\nThere are many other tasks available for jQuery Core:\n```\ngrunt -help\n```\n\n### Modules\n\nSpecial builds can be created that exclude subsets of jQuery functionality.\nThis allows for smaller custom builds when the builder is certain that those parts of jQuery are not being used.\nFor example, an app that only used JSONP for `$.ajax()` and did not need to calculate offsets or positions of elements could exclude the offset and ajax/xhr modules.\n\nAny module may be excluded except for `core`, and `selector`. To exclude a module, pass its path relative to the `src` folder (without the `.js` extension).\n\nSome example modules that can be excluded are:\n\n- **ajax**: All AJAX functionality: `$.ajax()`, `$.get()`, `$.post()`, `$.ajaxSetup()`, `.load()`, transports, and ajax event shorthands such as `.ajaxStart()`.\n- **ajax/xhr**: The XMLHTTPRequest AJAX transport only.\n- **ajax/script**: The `<script>` AJAX transport only; used to retrieve scripts.\n- **ajax/jsonp**: The JSONP AJAX transport only; depends on the ajax/script transport.\n- **css**: The `.css()` method plus non-animated `.show()`, `.hide()` and `.toggle()`. Also removes **all** modules depending on css (including **effects**, **dimensions**, and **offset**).\n- **deprecated**: Methods documented as deprecated but not yet removed; currently only `.andSelf()`.\n- **dimensions**: The `.width()` and `.height()` methods, including `inner-` and `outer-` variations.\n- **effects**: The `.animate()` method and its shorthands such as `.slideUp()` or `.hide(\"slow\")`.\n- **event**: The `.on()` and `.off()` methods and all event functionality. Also removes `event/alias`.\n- **event/alias**: All event attaching/triggering shorthands like `.click()` or `.mouseover()`.\n- **offset**: The `.offset()`, `.position()`, `.offsetParent()`, `.scrollLeft()`, and `.scrollTop()` methods.\n- **wrap**: The `.wrap()`, `.wrapAll()`, `.wrapInner()`, and `.unwrap()` methods.\n- **core/ready**: Exclude the ready module if you place your scripts at the end of the body. Any ready callbacks bound with `jQuery()` will simply be called immediately. However, `jQuery(document).ready()` will not be a function and `.on(\"ready\", ...)` or similar will not be triggered.\n- **deferred**: Exclude jQuery.Deferred. This also removes jQuery.Callbacks. *Note* that modules that depend on jQuery.Deferred(AJAX, effects, core/ready) will not be removed and will still expect jQuery.Deferred to be there. Include your own jQuery.Deferred implementation or exclude those modules as well (`grunt custom:-deferred,-ajax,-effects,-core/ready`).\n- **exports/global**: Exclude the attachment of global jQuery variables ($ and jQuery) to the window.\n- **exports/amd**: Exclude the AMD definition.\n\nAs a special case, you may also replace Sizzle by using a special flag `grunt custom:-sizzle`.\n\n- **sizzle**: The Sizzle selector engine. When this module is excluded, it is replaced by a rudimentary selector engine based on the browser's `querySelectorAll` method that does not support jQuery selector extensions or enhanced semantics. See the selector-native.js file for details.\n\n*Note*: Excluding Sizzle will also exclude all jQuery selector extensions (such as `effects/animatedSelector` and `css/hiddenVisibleSelectors`).\n\nThe build process shows a message for each dependent module it excludes or includes.\n\n##### AMD name\n\nAs an option, you can set the module name for jQuery's AMD definition. By default, it is set to \"jquery\", which plays nicely with plugins and third-party libraries, but there may be cases where you'd like to change this. Simply set the `\"amd\"` option:\n\n```bash\ngrunt custom --amd=\"custom-name\"\n```\n\nOr, to define anonymously, set the name to an empty string.\n\n```bash\ngrunt custom --amd=\"\"\n```\n\n#### Custom Build Examples\n\nTo create a custom build of the latest stable version, first check out the version:\n\n```bash\ngit pull; git checkout $(git describe --abbrev=0 --tags)\n```\n\nThen, make sure all Node dependencies are installed:\n\n```bash\nnpm install\n```\n\nCreate the custom build using the `grunt custom` option, listing the modules to be excluded.\n\nExclude all **ajax** functionality:\n\n```bash\ngrunt custom:-ajax\n```\n\nExcluding **css** removes modules depending on CSS: **effects**, **offset**, **dimensions**.\n\n```bash\ngrunt custom:-css\n```\n\nExclude a bunch of modules:\n\n```bash\ngrunt custom:-ajax,-css,-deprecated,-dimensions,-effects,-event/alias,-offset,-wrap\n```\n\nFor questions or requests regarding custom builds, please start a thread on the [Developing jQuery Core](https://forum.jquery.com/developing-jquery-core) section of the forum. Due to the combinatorics and custom nature of these builds, they are not regularly tested in jQuery's unit test process. The non-Sizzle selector engine currently does not pass unit tests because it is missing too much essential functionality.\n\nRunning the Unit Tests\n--------------------------------------\n\nMake sure you have the necessary dependencies:\n\n```bash\nnpm install\n```\n\nStart `grunt watch` or `npm start` to auto-build jQuery as you work:\n\n```bash\ncd jquery && grunt watch\n```\n\n\nRun the unit tests with a local server that supports PHP. Ensure that you run the site from the root directory, not the \"test\" directory. No database is required. Pre-configured php local servers are available for Windows and Mac. Here are some options:\n\n- Windows: [WAMP download](http://www.wampserver.com/en/)\n- Mac: [MAMP download](http://www.mamp.info/en/index.html)\n- Linux: [Setting up LAMP](https://www.linux.com/learn/tutorials/288158-easy-lamp-server-installation)\n- [Mongoose (most platforms)](http://code.google.com/p/mongoose/)\n\n\n\n\nBuilding to a different directory\n---------------------------------\n\nTo copy the built jQuery files from `/dist` to another directory:\n\n```bash\ngrunt && grunt dist:/path/to/special/location/\n```\nWith this example, the output files would be:\n\n```bash\n/path/to/special/location/jquery.js\n/path/to/special/location/jquery.min.js\n```\n\nTo add a permanent copy destination, create a file in `dist/` called \".destination.json\". Inside the file, paste and customize the following:\n\n```json\n\n{\n  \"/Absolute/path/to/other/destination\": true\n}\n```\n\nAdditionally, both methods can be combined.\n\n\n\nEssential Git\n-------------\n\nAs the source code is handled by the Git version control system, it's useful to know some features used.\n\n### Cleaning ###\n\nIf you want to purge your working directory back to the status of upstream, following commands can be used (remember everything you've worked on is gone after these):\n\n```bash\ngit reset --hard upstream/master\ngit clean -fdx\n```\n\n### Rebasing ###\n\nFor feature/topic branches, you should always use the `--rebase` flag to `git pull`, or if you are usually handling many temporary \"to be in a github pull request\" branches, run following to automate this:\n\n```bash\ngit config branch.autosetuprebase local\n```\n(see `man git-config` for more information)\n\n### Handling merge conflicts ###\n\nIf you're getting merge conflicts when merging, instead of editing the conflicted files manually, you can use the feature\n`git mergetool`. Even though the default tool `xxdiff` looks awful/old, it's rather useful.\n\nFollowing are some commands that can be used there:\n\n* `Ctrl + Alt + M` - automerge as much as possible\n* `b` - jump to next merge conflict\n* `s` - change the order of the conflicted lines\n* `u` - undo a merge\n* `left mouse button` - mark a block to be the winner\n* `middle mouse button` - mark a line to be the winner\n* `Ctrl + S` - save\n* `Ctrl + Q` - quit\n\n[QUnit](http://api.qunitjs.com) Reference\n-----------------\n\n### Test methods ###\n\n```js\nexpect( numAssertions );\nstop();\nstart();\n```\n\n\nNote: QUnit's eventual addition of an argument to stop/start is ignored in this test suite so that start and stop can be passed as callbacks without worrying about their parameters\n\n### Test assertions ###\n\n\n```js\nok( value, [message] );\nequal( actual, expected, [message] );\nnotEqual( actual, expected, [message] );\ndeepEqual( actual, expected, [message] );\nnotDeepEqual( actual, expected, [message] );\nstrictEqual( actual, expected, [message] );\nnotStrictEqual( actual, expected, [message] );\nthrows( block, [expected], [message] );\n```\n\n\nTest Suite Convenience Methods Reference (See [test/data/testinit.js](https://github.com/jquery/jquery/blob/master/test/data/testinit.js))\n------------------------------\n\n### Returns an array of elements with the given IDs ###\n\n```js\nq( ... );\n```\n\nExample:\n\n```js\nq(\"main\", \"foo\", \"bar\");\n\n=> [ div#main, span#foo, input#bar ]\n```\n\n### Asserts that a selection matches the given IDs ###\n\n```js\nt( testName, selector, [ \"array\", \"of\", \"ids\" ] );\n```\n\nExample:\n\n```js\nt(\"Check for something\", \"//[a]\", [\"foo\", \"baar\"]);\n```\n\n\n\n### Fires a native DOM event without going through jQuery ###\n\n```js\nfireNative( node, eventType )\n```\n\nExample:\n\n```js\nfireNative( jQuery(\"#elem\")[0], \"click\" );\n```\n\n### Add random number to url to stop caching ###\n\n```js\nurl( \"some/url.php\" );\n```\n\nExample:\n\n```js\nurl(\"data/test.html\");\n\n=> \"data/test.html?10538358428943\"\n\n\nurl(\"data/test.php?foo=bar\");\n\n=> \"data/test.php?foo=bar&10538358345554\"\n```\n\n\n### Load tests in an iframe ###\n\nLoads a given page constructing a url with fileName: `\"./data/\" + fileName + \".html\"`\nand fires the given callback on jQuery ready (using the jQuery loading from that page)\nand passes the iFrame's jQuery to the callback.\n\n```js\ntestIframe( fileName, testName, callback );\n```\n\nCallback arguments:\n\n```js\ncallback( jQueryFromIFrame, iFrameWindow, iFrameDocument );\n```\n\n### Load tests in an iframe (window.iframeCallback) ###\n\nLoads a given page constructing a url with fileName: `\"./data/\" + fileName + \".html\"`\nThe given callback is fired when window.iframeCallback is called by the page.\nThe arguments passed to the callback are the same as the\narguments passed to window.iframeCallback, whatever that may be\n\n```js\ntestIframeWithCallback( testName, fileName, callback );\n```\n\nQuestions?\n----------\n\nIf you have any questions, please feel free to ask on the\n[Developing jQuery Core forum](http://forum.jquery.com/developing-jquery-core) or in #jquery on irc.freenode.net.\n","readmeFilename":"README.md","homepage":"http://jquery.com","keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"_attachments":{},"_etag":"\"AYC1SFQSZ40BXMX14UGSUAEB9\""}
\ No newline at end of file
+{"_id":"jquery","_rev":"256-87a3e546c59ca60a6533f5d07f495340","name":"jquery","description":"JavaScript library for DOM operations","dist-tags":{"beta":"3.0.0-alpha1","latest":"2.1.4","old":"1.9.1","compat":"1.11.3"},"versions":{"1.5.1":{"name":"jquery","description":"jQuery: The Write Less, Do More, JavaScript Library","url":"jquery.com","keywords":["util","dom","jquery"],"author":{"name":"John Resig","email":"jeresig@gmail.com"},"contributors":[],"dependencies":{"jsdom":"=0.1.20","htmlparser":">= 1.7.3"},"lib":"lib","main":"./dist/node-jquery.js","version":"1.5.1","_id":"jquery@1.5.1","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.15","_nodeVersion":"v0.4.2","directories":{"lib":"./lib"},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"2ae2d661e906c1a01e044a71bb5b2743942183e5","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.5.1.tgz"}},"1.6.2":{"name":"jquery","description":"jQuery: The Write Less, Do More, JavaScript Library","url":"jquery.com","keywords":["util","dom","jquery"],"author":{"name":"John Resig","email":"jeresig@gmail.com"},"contributors":[],"dependencies":{"jsdom":">=0.2.0","htmlparser":">= 1.7.3"},"lib":"lib","main":"./dist/node-jquery.js","version":"1.6.2","_npmJsonOpts":{"file":"/Users/coolaj86/.npm/jquery/1.6.2/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"jquery@1.6.2","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.15","_nodeVersion":"v0.4.8","_defaultsLoaded":true,"dist":{"shasum":"01757a4c5beea29e8ae697527c3131abbe997a28","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.6.2.tgz"},"scripts":{},"directories":{}},"1.6.3":{"name":"jquery","description":"jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)","url":"http://jquery.com","keywords":["util","dom","jquery"],"author":{"name":"John Resig","email":"jeresig@gmail.com"},"contributors":[],"dependencies":{"jsdom":">=0.2.0","htmlparser":">= 1.7.3"},"lib":".","main":"./node-jquery.js","version":"1.6.3","_npmJsonOpts":{"file":"/Users/coolaj86/.npm/jquery/1.6.3/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"jquery@1.6.3","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.22","_nodeVersion":"v0.4.8","_defaultsLoaded":true,"dist":{"shasum":"e1f732fa7e718a6adb3ec20ae0eb2a64fd95ef01","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.6.3.tgz"},"scripts":{},"maintainers":[{"name":"coolaj86","email":"coolaj86@gmail.com"}],"directories":{}},"1.7.2":{"name":"jquery","description":"jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)","version":"1.7.2","url":"http://jquery.com","homepage":"https://github.com/coolaj86/node-jquery","author":{"name":"James Morrin","email":"treasonx@gmail.com"},"repository":{"type":"git","url":"git://github.com/coolaj86/node-jquery.git"},"bugs":{"url":"https://github.com/coolaj86/node-jquery/issues"},"licenses":[{"type":"MIT","url":"https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT"}],"main":"lib/node-jquery","engines":{"node":"0.6"},"scripts":{"test":"grunt test"},"dependencies":{"jsdom":"~0.2.14","htmlparser":"1.7.6","xmlhttprequest":"~1.3.0"},"devDependencies":{"grunt":"~0.3.8","nodeunit":"~0.7.4"},"keywords":["util","dom","jquery"],"_npmUser":{"name":"treasonx","email":"treasonx@gmail.com"},"_id":"jquery@1.7.2","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.12","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"a93746763aca75a34df4c16395b0826310d0eaf2","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.7.2.tgz"},"maintainers":[{"name":"coolaj86","email":"coolaj86@gmail.com"},{"name":"treasonx","email":"treasonx@gmail.com"}],"directories":{}},"1.7.3":{"name":"jquery","description":"jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)","version":"1.7.3","url":"http://jquery.com","homepage":"https://github.com/coolaj86/node-jquery","author":{"name":"James Morrin","email":"treasonx@gmail.com"},"repository":{"type":"git","url":"git://github.com/coolaj86/node-jquery.git"},"bugs":{"url":"https://github.com/coolaj86/node-jquery/issues"},"licenses":[{"type":"MIT","url":"https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT"}],"main":"lib/node-jquery","engines":{"node":">=0.6"},"scripts":{"test":"grunt test"},"dependencies":{"jsdom":"~0.2.14","htmlparser":"1.7.6","xmlhttprequest":"~1.4.2","location":"0.0.1","navigator":"~1.0.1"},"devDependencies":{"grunt":"~0.3.8","nodeunit":"~0.7.4"},"keywords":["util","dom","jquery"],"_id":"jquery@1.7.3","dist":{"shasum":"e3d00a71612ac7e9b554b438e0987d0272ddba94","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.7.3.tgz"},"maintainers":[{"name":"coolaj86","email":"coolaj86@gmail.com"},{"name":"treasonx","email":"treasonx@gmail.com"}],"directories":{}},"1.8.2":{"name":"jquery","description":"jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)","version":"1.8.2","url":"http://jquery.com","homepage":"https://github.com/coolaj86/node-jquery","author":{"name":"James Morrin","email":"treasonx@gmail.com"},"repository":{"type":"git","url":"git://github.com/coolaj86/node-jquery.git"},"bugs":{"url":"https://github.com/coolaj86/node-jquery/issues"},"licenses":[{"type":"MIT","url":"https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT"}],"main":"lib/node-jquery","engines":{"node":">=0.6"},"scripts":{"test":"grunt test"},"dependencies":{"jsdom":"~0.2.14","htmlparser":"1.7.6","xmlhttprequest":"~1.4.2","location":"0.0.1","navigator":"~1.0.1"},"devDependencies":{"grunt":"~0.3.8","nodeunit":"~0.7.4"},"keywords":["util","dom","jquery"],"_id":"jquery@1.8.2","dist":{"shasum":"46790ae07c6de38124eda90bbf7336b43df93305","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.8.2.tgz"},"_npmVersion":"1.1.61","_npmUser":{"name":"treasonx","email":"treasonx@gmail.com"},"maintainers":[{"name":"coolaj86","email":"coolaj86@gmail.com"},{"name":"treasonx","email":"treasonx@gmail.com"}],"directories":{}},"1.8.3":{"name":"jquery","description":"jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)","version":"1.8.3","url":"http://jquery.com","homepage":"https://github.com/coolaj86/node-jquery","author":{"name":"James Morrin","email":"treasonx@gmail.com"},"repository":{"type":"git","url":"git://github.com/coolaj86/node-jquery.git"},"bugs":{"url":"https://github.com/coolaj86/node-jquery/issues"},"licenses":[{"type":"MIT","url":"https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT"}],"main":"lib/node-jquery","engines":{"node":">=0.6"},"scripts":{"test":"grunt test"},"dependencies":{"jsdom":"~0.2.14","htmlparser":"1.7.6","xmlhttprequest":"~1.4.2","location":"0.0.1","navigator":"~1.0.1","contextify":"~0.1.3"},"devDependencies":{"grunt":"~0.3.8","nodeunit":"~0.7.4"},"keywords":["util","dom","jquery"],"_id":"jquery@1.8.3","dist":{"shasum":"cfa2941c05a83d966f21347f759a6d15281c60cc","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.8.3.tgz"},"_npmVersion":"1.1.61","_npmUser":{"name":"treasonx","email":"treasonx@gmail.com"},"maintainers":[{"name":"coolaj86","email":"coolaj86@gmail.com"},{"name":"treasonx","email":"treasonx@gmail.com"}],"directories":{}},"2.1.0-beta2":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.0-beta2","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/master/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"archiver":"~0.4.10","grunt":"~0.4.1","grunt-bower-task":"~0.3.2","grunt-cli":"~0.1.11","grunt-compare-size":"~0.4.0","grunt-contrib-jshint":"~0.7.0","grunt-contrib-uglify":"~0.2.7","grunt-contrib-watch":"~0.5.3","grunt-git-authors":"~1.2.0","grunt-jscs-checker":"~0.2.3","grunt-jsonlint":"~1.0.1","gzip-js":"0.3.2","load-grunt-tasks":"~0.2.0","testswarm":"~1.1.0","requirejs":"~2.1.9","which":"~1.0.5"},"_id":"jquery@2.1.0-beta2","dist":{"shasum":"e0fbbe2beb45b4d8f808362c7c99ef5bfee7d8c6","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.0-beta2.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"jquery","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"rwaldron","email":"waldron.rick@gmail.com"},{"name":"jquery","email":"npm@jquery.com"}],"directories":{}},"2.1.0-beta3":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.0-beta3","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.0-beta3/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.0-beta3/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.4.1","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@2.1.0-beta3","dist":{"shasum":"5a89b624d8fa625fe5fa83a12a9acb1ef8a11d02","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.0-beta3.tgz"},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jquery","email":"npm@jquery.org"},"maintainers":[{"name":"jquery","email":"npm@jquery.org"}],"directories":{}},"1.11.0-beta3":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.0-beta3","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.0-beta3/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.0-beta3/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.4.1","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@1.11.0-beta3","dist":{"shasum":"0464a6aba9f35f6c83a203caa23ab420909ce852","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.0-beta3.tgz"},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jquery","email":"npm@jquery.org"},"maintainers":[{"name":"jquery","email":"npm@jquery.org"}],"directories":{}},"1.11.0-rc1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.0-rc1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.0-rc1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.0-rc1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.5.0","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@1.11.0-rc1","dist":{"shasum":"c2f6a4877374647b20b080c478d8dbcdfb4960ee","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.0-rc1.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"jquery","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"jquery","email":"dave.methvin@gmail.com"}],"directories":{}},"2.1.0-rc1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.0-rc1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.0-rc1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.0-rc1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.5.0","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@2.1.0-rc1","dist":{"shasum":"8c9f5d9a055c2fedb3f5269617ae649497d6a3b0","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.0-rc1.tgz"},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},"maintainers":[{"name":"jquery","email":"npm@jquery.com"},{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"}],"directories":{}},"1.11.0":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.0","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.0/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.0/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.5.0","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@1.11.0","dist":{"shasum":"c67ceee19b403650d682adcf39d5c9009814d949","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.0.tgz"},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jquery","email":"npm@jquery.org"},"maintainers":[{"name":"jquery","email":"npm@jquery.org"}],"directories":{}},"2.1.0":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.0","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.0/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.0/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"archiver":"0.4.10","gzip-js":"0.3.2","testswarm":"1.1.0","load-grunt-tasks":"0.2.0","requirejs":"2.1.9","shelljs":"0.2.6","grunt":"0.4.2","grunt-cli":"0.1.11","grunt-contrib-jshint":"0.7.2","grunt-contrib-uglify":"0.2.7","grunt-contrib-watch":"0.5.3","grunt-bowercopy":"0.5.0","grunt-compare-size":"0.4.0","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.2.6","grunt-jsonlint":"1.0.4"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@2.1.0","dist":{"shasum":"1c9a8c971d2b53dae10d72e16cbb5a1df16a4ace","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.0.tgz"},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jquery","email":"npm@jquery.org"},"maintainers":[{"name":"jquery","email":"npm@jquery.org"}],"directories":{}},"2.1.1-beta1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.1-beta1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.1-beta1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.1-beta1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.3.2","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@2.1.1-beta1","dist":{"shasum":"6306c8ea1d104775f3ef8f5c26f0a32acd710a11","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.1-beta1.tgz"},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"m_gol","email":"m.goleb@gmail.com"},"maintainers":[{"name":"jquery","email":"npm@jquery.com"},{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"directories":{}},"1.11.1-beta1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.1-beta1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.1-beta1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.1-beta1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.3.2","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@1.11.1-beta1","dist":{"shasum":"c7eacde5e1ae06e029f1cd1b2dd444953a33e843","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.1-beta1.tgz"},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"m_gol","email":"m.goleb@gmail.com"},"maintainers":[{"name":"jquery","email":"npm@jquery.com"},{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"directories":{}},"2.1.1-rc1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.1-rc1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.1-rc1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.1-rc1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@2.1.1-rc1","_shasum":"95c494fdbbd0cefc305260e11ad46ae49a387c3d","_from":".","_npmVersion":"1.4.7","_npmUser":{"name":"m_gol","email":"m.goleb@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"dist":{"shasum":"95c494fdbbd0cefc305260e11ad46ae49a387c3d","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.1-rc1.tgz"},"directories":{}},"1.11.1-rc1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.1-rc1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.1-rc1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.1-rc1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@1.11.1-rc1","_shasum":"666a7df02488b48732d96e8ab9bdd34f61dd4238","_from":".","_npmVersion":"1.4.7","_npmUser":{"name":"m_gol","email":"m.goleb@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"dist":{"shasum":"666a7df02488b48732d96e8ab9bdd34f61dd4238","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.1-rc1.tgz"},"directories":{}},"2.1.1-rc2":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.1-rc2","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.1-rc2/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.1-rc2/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@2.1.1-rc2","dist":{"shasum":"99833e415efa7ac8a4efecc5df6894b2f938a598","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.1-rc2.tgz"},"_from":".","_npmVersion":"1.2.25","_npmUser":{"name":"dmethvin","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"directories":{}},"1.11.1-rc2":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.1-rc2","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.1-rc2/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.1-rc2/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@1.11.1-rc2","dist":{"shasum":"a4ef3edde0864d8524c5e72f59c459fd7a9ebd17","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.1-rc2.tgz"},"_from":".","_npmVersion":"1.2.25","_npmUser":{"name":"dmethvin","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"directories":{}},"2.1.1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@2.1.1","dist":{"shasum":"828fc60f50f7ee5983363ef4eb01c5f70af4bd5b","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.1.tgz"},"_from":".","_npmVersion":"1.2.25","_npmUser":{"name":"dmethvin","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"directories":{}},"1.11.1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.1/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.1/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"_id":"jquery@1.11.1","dist":{"shasum":"b6ec928590112ebed69e1e49cbfd0025ccd60ddb","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.1.tgz"},"_from":".","_npmVersion":"1.2.25","_npmUser":{"name":"dmethvin","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"}],"directories":{}},"1.9.1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.9.1","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/master/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt"}],"scripts":{"test":"grunt"},"dependencies":{},"devDependencies":{"grunt-compare-size":"~0.3.0","grunt-git-authors":"~1.1.0","grunt-update-submodules":"~0.2.0","grunt-contrib-watch":"~0.1.1","grunt-contrib-jshint":"~0.1.1","grunt-contrib-uglify":"~0.1.1","grunt":"~0.4.0","testswarm":"0.2.2"},"keywords":[],"gitHead":"d71f6a53927ad02d728503385d15539b73d21ac8","_id":"jquery@1.9.1","_shasum":"e4cd4835faaefbade535857613c0fc3ff2adaf34","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"timmywil","email":"timmywillisn@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"dist":{"shasum":"e4cd4835faaefbade535857613c0fc3ff2adaf34","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.9.1.tgz"},"directories":{}},"2.1.2":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.2","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.2/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.2/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"1.7.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"gitHead":"a04f5ff9795fd6292117563623db44cf3f875868","_id":"jquery@2.1.2","_shasum":"b68f154cb2ea4731924883e9fe20ec199d1dc1e2","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dmethvin","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"dist":{"shasum":"b68f154cb2ea4731924883e9fe20ec199d1dc1e2","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.2.tgz"},"directories":{}},"1.11.2":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.2","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.2/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.2/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"2.0.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"gitHead":"9690801db01709bfbff5f977d07fb7cc14472908","_id":"jquery@1.11.2","_shasum":"30ab26857211c37caa83da0f6903155fe49bb72d","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dmethvin","email":"dave.methvin@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"dist":{"shasum":"30ab26857211c37caa83da0f6903155fe49bb72d","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.2.tgz"},"directories":{}},"2.1.3":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.3","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.3/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.3/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"2.0.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","jsdom":"1.5.0","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"gitHead":"8f2a9d9272d6ed7f32d3a484740ab342c02541e0","_id":"jquery@2.1.3","_shasum":"6ec55204673d505d39432c5bf5cfad10e1dbad2e","_from":".","_npmVersion":"2.1.14","_nodeVersion":"0.11.14","_npmUser":{"name":"m_gol","email":"m.goleb@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"dist":{"shasum":"6ec55204673d505d39432c5bf5cfad10e1dbad2e","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.3.tgz"},"directories":{}},"2.1.4":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"2.1.4","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.4/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/2.1.4/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"2.0.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","jsdom":"1.5.0","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"gitHead":"7751e69b615c6eca6f783a81e292a55725af6b85","_id":"jquery@2.1.4","_shasum":"228bde698a0c61431dc2630a6a154f15890d2317","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"timmywil","email":"timmywillisn@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"dist":{"shasum":"228bde698a0c61431dc2630a6a154f15890d2317","tarball":"http://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz"},"directories":{}},"1.11.3":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"1.11.3","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/1.11.3/AUTHORS.txt"},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"licenses":[{"type":"MIT","url":"https://github.com/jquery/jquery/blob/1.11.3/MIT-LICENSE.txt"}],"dependencies":{},"devDependencies":{"commitplease":"2.0.0","grunt":"0.4.2","grunt-bowercopy":"0.7.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.8.0","grunt-contrib-uglify":"0.3.2","grunt-contrib-watch":"0.5.3","grunt-git-authors":"1.2.0","grunt-jscs-checker":"0.4.1","grunt-jsonlint":"1.0.4","gzip-js":"0.3.2","load-grunt-tasks":"0.3.0","requirejs":"2.1.10","testswarm":"1.1.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt"},"gitHead":"1472290917f17af05e98007136096784f9051fab","_id":"jquery@1.11.3","_shasum":"dd8b74278b27102d29df63eae28308a8cfa1b583","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"timmywil","email":"timmywillisn@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"dist":{"shasum":"dd8b74278b27102d29df63eae28308a8cfa1b583","tarball":"http://registry.npmjs.org/jquery/-/jquery-1.11.3.tgz"},"directories":{}},"3.0.0-alpha1":{"name":"jquery","title":"jQuery","description":"JavaScript library for DOM operations","version":"3.0.0-alpha1","main":"dist/jquery.js","homepage":"http://jquery.com","author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/3.0.0-alpha1/AUTHORS.txt"},"repository":{"type":"git","url":"git+https://github.com/jquery/jquery.git"},"keywords":["jquery","javascript","browser","library"],"bugs":{"url":"https://github.com/jquery/jquery/issues"},"license":"MIT","dependencies":{},"devDependencies":{"commitplease":"2.0.0","core-js":"0.9.17","grunt":"0.4.5","grunt-babel":"5.0.1","grunt-cli":"0.1.13","grunt-compare-size":"0.4.0","grunt-contrib-jshint":"0.11.2","grunt-contrib-uglify":"0.7.0","grunt-contrib-watch":"0.6.1","grunt-git-authors":"2.0.1","grunt-jscs-checker":"0.8.1","grunt-jsonlint":"1.0.4","grunt-npmcopy":"0.1.0","gzip-js":"0.3.2","load-grunt-tasks":"1.0.0","native-promise-only":"0.7.8-a","promises-aplus-tests":"2.1.0","q":"1.1.2","qunitjs":"1.17.1","requirejs":"2.1.17","sinon":"1.10.3","sizzle":"2.2.0","testswarm":"1.1.0","win-spawn":"2.0.0"},"jsdomVersions":{"node":"3.1.2","iojs":"5.3.0"},"scripts":{"build":"npm install && grunt","start":"grunt watch","test":"grunt && grunt test"},"commitplease":{"components":["Docs","Tests","Build","Release","Core","Ajax","Attributes","Callbacks","CSS","Data","Deferred","Dimensions","Effects","Event","Manipulation","Offset","Queue","Selector","Serialize","Traversing","Wrap"]},"gitHead":"2c92869b752bb8e0fe74c3183f40f3f58b7b906d","_id":"jquery@3.0.0-alpha1","_shasum":"3493d672266e21c2dffb2714f935448edebe3c62","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"timmywil","email":"timmywillisn@gmail.com"},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"dist":{"shasum":"3493d672266e21c2dffb2714f935448edebe3c62","tarball":"http://registry.npmjs.org/jquery/-/jquery-3.0.0-alpha1.tgz"},"directories":{}}},"maintainers":[{"name":"dmethvin","email":"dave.methvin@gmail.com"},{"name":"scott.gonzalez","email":"scott.gonzalez@gmail.com"},{"name":"m_gol","email":"m.goleb@gmail.com"},{"name":"timmywil","email":"timmywillisn@gmail.com"}],"time":{"modified":"2015-07-13T19:26:37.913Z","created":"2011-03-19T07:19:56.392Z","1.5.1":"2011-03-19T07:19:56.956Z","1.6.2":"2011-07-06T16:13:21.519Z","1.6.3":"2011-09-12T19:05:34.373Z","1.7.2":"2012-05-01T11:14:09.090Z","1.7.3":"2012-07-01T16:11:53.194Z","1.8.2":"2012-11-11T22:43:58.910Z","1.8.3":"2012-12-01T00:03:02.297Z","2.1.0-beta2":"2013-11-15T16:34:48.859Z","2.1.0-beta3":"2013-12-20T22:53:28.426Z","1.11.0-beta3":"2014-01-06T19:57:22.387Z","2.1.0-rc1":"2014-01-17T22:47:16.391Z","1.11.0-pre":"2014-01-16T20:38:42.912Z","1.11.0-rc1":"2014-01-16T21:08:36.924Z","1.11.0":"2014-01-23T21:07:07.184Z","2.1.0":"2014-01-23T21:12:47.772Z","2.1.1-beta1":"2014-03-24T17:05:07.581Z","1.11.1-beta1":"2014-03-24T17:25:14.236Z","2.1.1-rc1":"2014-04-18T15:29:41.423Z","1.11.1-rc1":"2014-04-18T15:40:23.931Z","2.1.1-rc2":"2014-04-21T20:52:06.866Z","1.11.1-rc2":"2014-04-21T21:12:52.817Z","2.1.1":"2014-05-01T17:15:20.164Z","1.11.1":"2014-05-01T18:05:32.863Z","1.9.1":"2014-07-17T22:01:17.886Z","2.1.2":"2014-12-17T14:14:28.184Z","1.11.2":"2014-12-17T16:07:07.647Z","2.1.3":"2014-12-18T15:18:38.205Z","2.1.4":"2015-04-28T16:17:13.648Z","1.11.3":"2015-04-28T16:22:06.378Z","3.0.0-alpha1":"2015-07-13T19:26:37.913Z"},"author":{"name":"jQuery Foundation and other contributors","url":"https://github.com/jquery/jquery/blob/2.1.4/AUTHORS.txt"},"users":{"dodo":true,"fgribreau":true,"parroit":true,"cedx":true,"m_gol":true,"feross":true,"bendiken":true,"funroll":true,"inancgumus":true,"jkcpr":true,"magemagic":true,"davidbaiguini":true,"shen-weizhong":true,"oroce":true,"beth_rogers465":true,"leobalter":true,"frk1705":true,"victorcastelan":true,"skinnybrit51":true,"tommyjs7":true,"xanderiel":true,"arturmuller":true,"lukecarrier":true,"bjlxj_2008":true,"kmck":true,"jesus81":true,"rpgreen":true,"vsn4ik":true,"gabrielsanterre":true,"adswebwork":true,"abuelwafa":true,"karlitowhoelse":true,"mhat":true,"tektimmy":true,"modest":true,"rgraves90":true,"alexandermac":true,"adamk":true,"nitayneeman":true,"haeck":true,"pnevares":true,"hal9zillion":true,"j3kz":true,"wambulance":true,"jostw":true,"sahilsk":true,"broxmgs":true,"jimster305":true,"csbun":true,"isis97":true,"simplyianm":true,"fatelei":true,"trotyl":true,"chengsu":true,"orlenka":true,"mr_eaze":true,"jmm23":true,"ackuser":true,"tfentonz":true,"ftornik":true,"onheiron":true,"jgreeley":true,"sedmonds":true,"cycomachead":true,"duchenerc":true,"damianof":true,"sergiodxa":true,"rhythm19":true,"piotrd":true,"buzuli":true,"mugifly":true,"cypark":true,"wkaifang":true,"jeffb_incontact":true,"zenrumi":true,"seaseng":true,"vishwasc":true,"matthewbauer":true,"paroczi":true,"joshbruce":true,"joaocunha":true,"sky3r":true,"knoja4":true,"hughker":true,"xgqfrms":true,"meligatt":true,"hasanabb":true,"nickeltobias":true,"kimhoe":true,"ovgu12":true,"ibourgeois":true},"repository":{"type":"git","url":"https://github.com/jquery/jquery.git"},"readme":"[jQuery](http://jquery.com/) - New Wave JavaScript\n==================================================\n\nContribution Guides\n--------------------------------------\n\nIn the spirit of open source software development, jQuery always encourages community code contribution. To help you get started and before you jump into writing code, be sure to read these important contribution guidelines thoroughly:\n\n1. [Getting Involved](http://contribute.jquery.org/)\n2. [Core Style Guide](http://contribute.jquery.org/style-guide/js/)\n3. [Writing Code for jQuery Foundation Projects](http://contribute.jquery.org/code/)\n\n\nEnvironments in which to use jQuery\n--------------------------------------\n\n- [Browser support](http://jquery.com/browser-support/) differs between the master (2.x) branch and the 1.x-master branch. Specifically, 2.x does not support legacy browsers such as IE6-8. The jQuery team continues to provide support for legacy browsers on the 1.x-master branch. Use the latest 1.x release if support for those browsers is required. See [browser support](http://jquery.com/browser-support/) for more info.\n- To use jQuery in Node, browser extensions, and other non-browser environments, use only **2.x** releases. 1.x does not support these environments.\n\n\nWhat you need to build your own jQuery\n--------------------------------------\n\nIn order to build jQuery, you need to have Node.js/npm latest and git 1.7 or later.\n(Earlier versions might work OK, but are not tested.)\n\nFor Windows you have to download and install [git](http://git-scm.com/downloads) and [Node.js](http://nodejs.org/download/).\n\nMac OS users should install [Homebrew](http://mxcl.github.com/homebrew/). Once Homebrew is installed, run `brew install git` to install git,\nand `brew install node` to install Node.js.\n\nLinux/BSD users should use their appropriate package managers to install git and Node.js, or build from source\nif you swing that way. Easy-peasy.\n\n\nHow to build your own jQuery\n----------------------------\n\nClone a copy of the main jQuery git repo by running:\n\n```bash\ngit clone git://github.com/jquery/jquery.git\n```\n\nEnter the jquery directory and run the build script:\n```bash\ncd jquery && npm run build\n```\nThe built version of jQuery will be put in the `dist/` subdirectory, along with the minified copy and associated map file.\n\nIf you want create custom build or help with jQuery development, it would be better to install [grunt command line interface](https://github.com/gruntjs/grunt-cli) as a global package:\n\n```\nnpm install -g grunt-cli\n```\nMake sure you have `grunt` installed by testing:\n```\ngrunt -v\n```\n\nNow by running `grunt` command, in the jquery directory, you could build full version of jQuery, just like with `npm run build` command:\n```\ngrunt\n```\n\nThere are many other tasks available for jQuery Core:\n```\ngrunt -help\n```\n\n### Modules\n\nSpecial builds can be created that exclude subsets of jQuery functionality.\nThis allows for smaller custom builds when the builder is certain that those parts of jQuery are not being used.\nFor example, an app that only used JSONP for `$.ajax()` and did not need to calculate offsets or positions of elements could exclude the offset and ajax/xhr modules.\n\nAny module may be excluded except for `core`, and `selector`. To exclude a module, pass its path relative to the `src` folder (without the `.js` extension).\n\nSome example modules that can be excluded are:\n\n- **ajax**: All AJAX functionality: `$.ajax()`, `$.get()`, `$.post()`, `$.ajaxSetup()`, `.load()`, transports, and ajax event shorthands such as `.ajaxStart()`.\n- **ajax/xhr**: The XMLHTTPRequest AJAX transport only.\n- **ajax/script**: The `<script>` AJAX transport only; used to retrieve scripts.\n- **ajax/jsonp**: The JSONP AJAX transport only; depends on the ajax/script transport.\n- **css**: The `.css()` method plus non-animated `.show()`, `.hide()` and `.toggle()`. Also removes **all** modules depending on css (including **effects**, **dimensions**, and **offset**).\n- **deprecated**: Methods documented as deprecated but not yet removed; currently only `.andSelf()`.\n- **dimensions**: The `.width()` and `.height()` methods, including `inner-` and `outer-` variations.\n- **effects**: The `.animate()` method and its shorthands such as `.slideUp()` or `.hide(\"slow\")`.\n- **event**: The `.on()` and `.off()` methods and all event functionality. Also removes `event/alias`.\n- **event/alias**: All event attaching/triggering shorthands like `.click()` or `.mouseover()`.\n- **offset**: The `.offset()`, `.position()`, `.offsetParent()`, `.scrollLeft()`, and `.scrollTop()` methods.\n- **wrap**: The `.wrap()`, `.wrapAll()`, `.wrapInner()`, and `.unwrap()` methods.\n- **core/ready**: Exclude the ready module if you place your scripts at the end of the body. Any ready callbacks bound with `jQuery()` will simply be called immediately. However, `jQuery(document).ready()` will not be a function and `.on(\"ready\", ...)` or similar will not be triggered.\n- **deferred**: Exclude jQuery.Deferred. This also removes jQuery.Callbacks. *Note* that modules that depend on jQuery.Deferred(AJAX, effects, core/ready) will not be removed and will still expect jQuery.Deferred to be there. Include your own jQuery.Deferred implementation or exclude those modules as well (`grunt custom:-deferred,-ajax,-effects,-core/ready`).\n- **exports/global**: Exclude the attachment of global jQuery variables ($ and jQuery) to the window.\n- **exports/amd**: Exclude the AMD definition.\n\nAs a special case, you may also replace Sizzle by using a special flag `grunt custom:-sizzle`.\n\n- **sizzle**: The Sizzle selector engine. When this module is excluded, it is replaced by a rudimentary selector engine based on the browser's `querySelectorAll` method that does not support jQuery selector extensions or enhanced semantics. See the selector-native.js file for details.\n\n*Note*: Excluding Sizzle will also exclude all jQuery selector extensions (such as `effects/animatedSelector` and `css/hiddenVisibleSelectors`).\n\nThe build process shows a message for each dependent module it excludes or includes.\n\n##### AMD name\n\nAs an option, you can set the module name for jQuery's AMD definition. By default, it is set to \"jquery\", which plays nicely with plugins and third-party libraries, but there may be cases where you'd like to change this. Simply set the `\"amd\"` option:\n\n```bash\ngrunt custom --amd=\"custom-name\"\n```\n\nOr, to define anonymously, set the name to an empty string.\n\n```bash\ngrunt custom --amd=\"\"\n```\n\n#### Custom Build Examples\n\nTo create a custom build of the latest stable version, first check out the version:\n\n```bash\ngit pull; git checkout $(git describe --abbrev=0 --tags)\n```\n\nThen, make sure all Node dependencies are installed:\n\n```bash\nnpm install\n```\n\nCreate the custom build using the `grunt custom` option, listing the modules to be excluded.\n\nExclude all **ajax** functionality:\n\n```bash\ngrunt custom:-ajax\n```\n\nExcluding **css** removes modules depending on CSS: **effects**, **offset**, **dimensions**.\n\n```bash\ngrunt custom:-css\n```\n\nExclude a bunch of modules:\n\n```bash\ngrunt custom:-ajax,-css,-deprecated,-dimensions,-effects,-event/alias,-offset,-wrap\n```\n\nFor questions or requests regarding custom builds, please start a thread on the [Developing jQuery Core](https://forum.jquery.com/developing-jquery-core) section of the forum. Due to the combinatorics and custom nature of these builds, they are not regularly tested in jQuery's unit test process. The non-Sizzle selector engine currently does not pass unit tests because it is missing too much essential functionality.\n\nRunning the Unit Tests\n--------------------------------------\n\nMake sure you have the necessary dependencies:\n\n```bash\nnpm install\n```\n\nStart `grunt watch` or `npm start` to auto-build jQuery as you work:\n\n```bash\ncd jquery && grunt watch\n```\n\n\nRun the unit tests with a local server that supports PHP. Ensure that you run the site from the root directory, not the \"test\" directory. No database is required. Pre-configured php local servers are available for Windows and Mac. Here are some options:\n\n- Windows: [WAMP download](http://www.wampserver.com/en/)\n- Mac: [MAMP download](http://www.mamp.info/en/index.html)\n- Linux: [Setting up LAMP](https://www.linux.com/learn/tutorials/288158-easy-lamp-server-installation)\n- [Mongoose (most platforms)](http://code.google.com/p/mongoose/)\n\n\n\n\nBuilding to a different directory\n---------------------------------\n\nTo copy the built jQuery files from `/dist` to another directory:\n\n```bash\ngrunt && grunt dist:/path/to/special/location/\n```\nWith this example, the output files would be:\n\n```bash\n/path/to/special/location/jquery.js\n/path/to/special/location/jquery.min.js\n```\n\nTo add a permanent copy destination, create a file in `dist/` called \".destination.json\". Inside the file, paste and customize the following:\n\n```json\n\n{\n  \"/Absolute/path/to/other/destination\": true\n}\n```\n\nAdditionally, both methods can be combined.\n\n\n\nEssential Git\n-------------\n\nAs the source code is handled by the Git version control system, it's useful to know some features used.\n\n### Cleaning ###\n\nIf you want to purge your working directory back to the status of upstream, following commands can be used (remember everything you've worked on is gone after these):\n\n```bash\ngit reset --hard upstream/master\ngit clean -fdx\n```\n\n### Rebasing ###\n\nFor feature/topic branches, you should always use the `--rebase` flag to `git pull`, or if you are usually handling many temporary \"to be in a github pull request\" branches, run following to automate this:\n\n```bash\ngit config branch.autosetuprebase local\n```\n(see `man git-config` for more information)\n\n### Handling merge conflicts ###\n\nIf you're getting merge conflicts when merging, instead of editing the conflicted files manually, you can use the feature\n`git mergetool`. Even though the default tool `xxdiff` looks awful/old, it's rather useful.\n\nFollowing are some commands that can be used there:\n\n* `Ctrl + Alt + M` - automerge as much as possible\n* `b` - jump to next merge conflict\n* `s` - change the order of the conflicted lines\n* `u` - undo a merge\n* `left mouse button` - mark a block to be the winner\n* `middle mouse button` - mark a line to be the winner\n* `Ctrl + S` - save\n* `Ctrl + Q` - quit\n\n[QUnit](http://api.qunitjs.com) Reference\n-----------------\n\n### Test methods ###\n\n```js\nexpect( numAssertions );\nstop();\nstart();\n```\n\n\nNote: QUnit's eventual addition of an argument to stop/start is ignored in this test suite so that start and stop can be passed as callbacks without worrying about their parameters\n\n### Test assertions ###\n\n\n```js\nok( value, [message] );\nequal( actual, expected, [message] );\nnotEqual( actual, expected, [message] );\ndeepEqual( actual, expected, [message] );\nnotDeepEqual( actual, expected, [message] );\nstrictEqual( actual, expected, [message] );\nnotStrictEqual( actual, expected, [message] );\nthrows( block, [expected], [message] );\n```\n\n\nTest Suite Convenience Methods Reference (See [test/data/testinit.js](https://github.com/jquery/jquery/blob/master/test/data/testinit.js))\n------------------------------\n\n### Returns an array of elements with the given IDs ###\n\n```js\nq( ... );\n```\n\nExample:\n\n```js\nq(\"main\", \"foo\", \"bar\");\n\n=> [ div#main, span#foo, input#bar ]\n```\n\n### Asserts that a selection matches the given IDs ###\n\n```js\nt( testName, selector, [ \"array\", \"of\", \"ids\" ] );\n```\n\nExample:\n\n```js\nt(\"Check for something\", \"//[a]\", [\"foo\", \"baar\"]);\n```\n\n\n\n### Fires a native DOM event without going through jQuery ###\n\n```js\nfireNative( node, eventType )\n```\n\nExample:\n\n```js\nfireNative( jQuery(\"#elem\")[0], \"click\" );\n```\n\n### Add random number to url to stop caching ###\n\n```js\nurl( \"some/url.php\" );\n```\n\nExample:\n\n```js\nurl(\"data/test.html\");\n\n=> \"data/test.html?10538358428943\"\n\n\nurl(\"data/test.php?foo=bar\");\n\n=> \"data/test.php?foo=bar&10538358345554\"\n```\n\n\n### Load tests in an iframe ###\n\nLoads a given page constructing a url with fileName: `\"./data/\" + fileName + \".html\"`\nand fires the given callback on jQuery ready (using the jQuery loading from that page)\nand passes the iFrame's jQuery to the callback.\n\n```js\ntestIframe( fileName, testName, callback );\n```\n\nCallback arguments:\n\n```js\ncallback( jQueryFromIFrame, iFrameWindow, iFrameDocument );\n```\n\n### Load tests in an iframe (window.iframeCallback) ###\n\nLoads a given page constructing a url with fileName: `\"./data/\" + fileName + \".html\"`\nThe given callback is fired when window.iframeCallback is called by the page.\nThe arguments passed to the callback are the same as the\narguments passed to window.iframeCallback, whatever that may be\n\n```js\ntestIframeWithCallback( testName, fileName, callback );\n```\n\nQuestions?\n----------\n\nIf you have any questions, please feel free to ask on the\n[Developing jQuery Core forum](http://forum.jquery.com/developing-jquery-core) or in #jquery on irc.freenode.net.\n","readmeFilename":"README.md","homepage":"http://jquery.com","keywords":["jquery","javascript","browser","library"],"bugs":{"url":"http://bugs.jquery.com"},"_attachments":{},"_etag":"\"ACQZL1V9JIBQR3S1PTA02GZCE\""}
\ No newline at end of file
index 714008fc78d174e152166527df849cc541e20857..e86b0e2372db3679a5e6a9920e85ca5962ff84a4 100644 (file)
@@ -1 +1 @@
-{"_id":"mkdirp","_rev":"178-f672ffcfa85232c8edc60f55c16b0a2a","name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","dist-tags":{"latest":"0.5.1"},"versions":{"0.0.1":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.0.1","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"modules":{"index":"./index"},"keywords":["mkdir","directory"],"repository":{"type":"git","url":"http://github.com/substack/node-mkdirp.git"},"engines":{"node":"*"},"_id":"mkdirp@0.0.1","_nodeSupported":true,"_npmVersion":"0.2.12-1","_nodeVersion":"v0.2.5","dist":{"shasum":"3fbd9f4711a5234233dc6c9d7a052d4b9f83b416","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.0.1.tgz"},"directories":{}},"0.0.2":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.0.2","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"http://github.com/substack/node-mkdirp.git"},"license":"MIT/X11","engines":{"node":"*"},"_id":"mkdirp@0.0.2","_engineSupported":true,"_npmVersion":"0.2.18","_nodeVersion":"v0.3.8-pre","directories":{},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"d9438082daac12691c71d64076706c8a5c3511b6","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.0.2.tgz"}},"0.0.3":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.0.3","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"expresso"},"devDependencies":{"expresso":"0.7.x"},"license":"MIT/X11","engines":{"node":"*"},"_id":"mkdirp@0.0.3","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"5a7d88a26857023759ffee7fe4c0b28b0f0066b9","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.0.3.tgz"},"directories":{}},"0.0.4":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.0.4","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"expresso"},"devDependencies":{"expresso":"0.7.x"},"license":"MIT/X11","engines":{"node":"*"},"_id":"mkdirp@0.0.4","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"fbb491deec0b9b00869f52582e5f431b3681d2f5","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.0.4.tgz"},"directories":{}},"0.0.5":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.0.5","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"expresso"},"devDependencies":{"expresso":"0.7.x"},"license":"MIT/X11","engines":{"node":"*"},"_id":"mkdirp@0.0.5","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"375facfa634b17dcdf734c56f59ddae5102811c8","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.0.5.tgz"},"directories":{}},"0.0.6":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.0.6","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"expresso"},"devDependencies":{"expresso":"0.7.x"},"license":"MIT/X11","engines":{"node":"*"},"_id":"mkdirp@0.0.6","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"0965de71060cf5e237ffa795243cb5d9a78d335b","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.0.6.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.0.7":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.0.7","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"node node_modules/tap/bin/tap.js test/*.js"},"devDependencies":{"tap":"0.0.x"},"license":"MIT/X11","engines":{"node":"*"},"_id":"mkdirp@0.0.7","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"d89b4f0e4c3e5e5ca54235931675e094fe1a5072","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.0.7.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.1.0":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.1.0","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"0.0.x"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.1.0","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.101","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"53212930f7bd75f187b6c8688eb0a5fd69b7d118","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.1.0.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.2.0":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.2.0","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"0.0.x"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.2.0","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.101","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"29dd87f198880b568d1efce0980e7231b048f3aa","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.2.0.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.2.1":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.2.1","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"0.0.x"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.2.1","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.101","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"2ef920435c8511e135137a33f18a9e40cf9dd166","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.2.1.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.2.2":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.2.2","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"0.0.x"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.2.2","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"7235f2a2062aaf3619189b9f4772114c30944498","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.2.2.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.3.0":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.3.0","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"0.0.x"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.3.0","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"1bbf5ab1ba827af23575143490426455f481fe1e","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.3.1":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.3.1","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"~0.2.4"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.3.1","dependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"bee3db22a2aa1c81d4b4c0db39c7da9888799593","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.1.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.3.2":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.3.2","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"~0.2.4"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.3.2","dependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"4bfb891e9c48b93d6b567f2c3cf2dd3f56bcdef8","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.2.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.3.3":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.3.3","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"~0.2.4"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.3.3","dependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.19","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"595e251c1370c3a68bab2136d0e348b8105adf13","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.3.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.3.4":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.3.4","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"http://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"~0.2.4"},"license":"MIT/X11","engines":{"node":"*"},"_id":"mkdirp@0.3.4","dist":{"shasum":"f8c81d213b7299a031f193a57d752a17d2f6c7d8","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.4.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.3.5":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.3.5","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"http://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"~0.4.0"},"license":"MIT","_id":"mkdirp@0.3.5","dist":{"shasum":"de3e5f8961c88c787ee1368df849ac4413eca8d7","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"substack","email":"mail@substack.net"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.4.0":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.4.0","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"http://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"~0.4.0"},"bin":{"mkdirp":"bin/cmd.js"},"license":"MIT","bugs":{"url":"https://github.com/substack/node-mkdirp/issues"},"homepage":"https://github.com/substack/node-mkdirp","_id":"mkdirp@0.4.0","dist":{"shasum":"291ac2a2d43a19c478662577b5be846fe83b5923","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.4.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"substack","email":"mail@substack.net"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.4.1":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.4.1","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"http://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"dependencies":{"minimist":"0.0.8"},"devDependencies":{"tap":"~0.4.0"},"bin":{"mkdirp":"bin/cmd.js"},"license":"MIT","bugs":{"url":"https://github.com/substack/node-mkdirp/issues"},"homepage":"https://github.com/substack/node-mkdirp","_id":"mkdirp@0.4.1","dist":{"shasum":"4d467afabfdf8ae460c2da656eae8f7b21af4558","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.4.1.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"substack","email":"mail@substack.net"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.4.2":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.4.2","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"https://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"dependencies":{"minimist":"0.0.8"},"devDependencies":{"tap":"~0.4.0"},"bin":{"mkdirp":"bin/cmd.js"},"license":"MIT","bugs":{"url":"https://github.com/substack/node-mkdirp/issues"},"homepage":"https://github.com/substack/node-mkdirp","_id":"mkdirp@0.4.2","dist":{"shasum":"427c8c18ece398b932f6f666f4e1e5b7740e78c8","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.4.2.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"substack","email":"mail@substack.net"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.5.0":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.5.0","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"https://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"dependencies":{"minimist":"0.0.8"},"devDependencies":{"tap":"~0.4.0","mock-fs":"~2.2.0"},"bin":{"mkdirp":"bin/cmd.js"},"license":"MIT","bugs":{"url":"https://github.com/substack/node-mkdirp/issues"},"homepage":"https://github.com/substack/node-mkdirp","_id":"mkdirp@0.5.0","dist":{"shasum":"1d73076a6df986cd9344e15e71fcc05a4c9abf12","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"substack","email":"mail@substack.net"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.5.1":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.5.1","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"index.js","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git+https://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"dependencies":{"minimist":"0.0.8"},"devDependencies":{"tap":"1","mock-fs":"2 >=2.7.0"},"bin":{"mkdirp":"bin/cmd.js"},"license":"MIT","gitHead":"d4eff0f06093aed4f387e88e9fc301cb76beedc7","bugs":{"url":"https://github.com/substack/node-mkdirp/issues"},"homepage":"https://github.com/substack/node-mkdirp#readme","_id":"mkdirp@0.5.1","_shasum":"30057438eac6cf7f8c4767f38648d6697d75c903","_from":".","_npmVersion":"2.9.0","_nodeVersion":"2.0.0","_npmUser":{"name":"substack","email":"substack@gmail.com"},"dist":{"shasum":"30057438eac6cf7f8c4767f38648d6697d75c903","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}}},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"time":{"modified":"2015-05-14T02:27:01.553Z","created":"2011-01-06T02:54:36.080Z","0.0.1":"2011-01-06T02:54:36.496Z","0.0.2":"2011-02-14T20:11:44.988Z","0.0.3":"2011-06-20T04:02:44.361Z","0.0.4":"2011-06-29T00:28:32.272Z","0.0.5":"2011-06-29T18:22:05.839Z","0.0.6":"2011-08-20T21:37:10.730Z","0.0.7":"2011-09-10T22:50:08.879Z","0.1.0":"2011-11-06T06:32:23.379Z","0.2.0":"2011-11-16T05:32:17.036Z","0.2.1":"2011-11-16T09:26:51.089Z","0.2.2":"2012-01-08T05:02:35.484Z","0.3.0":"2012-01-20T02:20:42.042Z","0.3.1":"2012-03-31T19:51:38.912Z","0.3.2":"2012-04-30T08:52:12.424Z","0.3.3":"2012-06-05T15:54:31.889Z","0.3.4":"2012-08-20T12:27:24.983Z","0.3.5":"2013-02-22T11:44:25.486Z","0.4.0":"2014-04-22T22:21:21.058Z","0.4.1":"2014-05-04T02:20:59.368Z","0.4.2":"2014-05-06T01:40:35.608Z","0.5.0":"2014-05-06T02:28:23.769Z","0.5.1":"2015-05-14T02:27:01.553Z"},"author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"repository":{"type":"git","url":"git+https://github.com/substack/node-mkdirp.git"},"users":{"pid":true,"dodo":true,"tellnes":true,"fgribreau":true,"jswartwood":true,"m42am":true,"superjoe":true,"chrisdickinson":true,"michaelnisi":true,"dannydulai":true,"dbrockman":true,"jpoehls":true,"chilts":true,"jamesmgreene":true,"forbeslindesay":true,"mvolkmann":true,"netroy":true,"kastor":true,"florianwendelborn":true,"werle":true,"pana":true,"isaacs":true,"polotek":true,"timur.shemsedinov":true,"jacques":true,"cilindrox":true,"greelgorke":true,"esundahl":true,"alanbhamilton":true,"coderaiser":true,"feross":true,"seldo":true,"tarcio":true,"biggora":true,"jifeng":true,"leventkaragol":true,"maxzhang":true,"cocopas":true,"peterbeno":true,"jacoborus":true,"zeusdeux":true,"redmed":true,"jacksontian":true,"solodu":true,"davidrlee":true,"sdolard":true,"krry":true,"tchey":true,"atd":true,"fill":true,"omrilotan":true,"pingjiang":true,"bmpvieira":true,"buster":true,"yourhoneysky":true,"asantiago":true,"caudralys":true,"ali1k":true,"peckzeg":true,"shieldax":true,"ryanj":true,"mihaiv":true,"lupus":true,"ycloud":true,"nayrangnu":true,"larixk":true,"masonwan":true,"f124275809":true,"cellule":true,"pdilyard":true,"hzapata":true,"tmypawa":true,"benoror":true,"mpcref":true,"kulakowka":true,"trusktr":true,"jakeginnivan":true,"pnevares":true,"seanjh":true,"pstoev":true,"subchen":true,"schnittstabil":true,"rbartoli":true,"shaneli":true,"itonyyo":true,"icirellik":true,"akiva":true,"mysticatea":true,"kelerliao":true,"wangnan0610":true,"mjwilliams":true,"jasoncmcg":true,"nwinant":true,"khaledkaram":true,"marcghorayeb":true,"elrolito":true,"shriek":true,"garrickajo":true,"ddffx":true,"jyounce":true,"mattms":true,"axelav":true,"ocd_lionel":true,"kappuccino":true,"emiljohansson":true,"pirijan":true},"keywords":["mkdir","directory"],"license":"MIT","readme":"# mkdirp\n\nLike `mkdir -p`, but in node.js!\n\n[![build status](https://secure.travis-ci.org/substack/node-mkdirp.png)](http://travis-ci.org/substack/node-mkdirp)\n\n# example\n\n## pow.js\n\n```js\nvar mkdirp = require('mkdirp');\n    \nmkdirp('/tmp/foo/bar/baz', function (err) {\n    if (err) console.error(err)\n    else console.log('pow!')\n});\n```\n\nOutput\n\n```\npow!\n```\n\nAnd now /tmp/foo/bar/baz exists, huzzah!\n\n# methods\n\n```js\nvar mkdirp = require('mkdirp');\n```\n\n## mkdirp(dir, opts, cb)\n\nCreate a new directory and any necessary subdirectories at `dir` with octal\npermission string `opts.mode`. If `opts` is a non-object, it will be treated as\nthe `opts.mode`.\n\nIf `opts.mode` isn't specified, it defaults to `0777 & (~process.umask())`.\n\n`cb(err, made)` fires with the error or the first directory `made`\nthat had to be created, if any.\n\nYou can optionally pass in an alternate `fs` implementation by passing in\n`opts.fs`. Your implementation should have `opts.fs.mkdir(path, mode, cb)` and\n`opts.fs.stat(path, cb)`.\n\n## mkdirp.sync(dir, opts)\n\nSynchronously create a new directory and any necessary subdirectories at `dir`\nwith octal permission string `opts.mode`. If `opts` is a non-object, it will be\ntreated as the `opts.mode`.\n\nIf `opts.mode` isn't specified, it defaults to `0777 & (~process.umask())`.\n\nReturns the first directory that had to be created, if any.\n\nYou can optionally pass in an alternate `fs` implementation by passing in\n`opts.fs`. Your implementation should have `opts.fs.mkdirSync(path, mode)` and\n`opts.fs.statSync(path)`.\n\n# usage\n\nThis package also ships with a `mkdirp` command.\n\n```\nusage: mkdirp [DIR1,DIR2..] {OPTIONS}\n\n  Create each supplied directory including any necessary parent directories that\n  don't yet exist.\n  \n  If the directory already exists, do nothing.\n\nOPTIONS are:\n\n  -m, --mode   If a directory needs to be created, set the mode as an octal\n               permission string.\n\n```\n\n# install\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm install mkdirp\n```\n\nto get the library, or\n\n```\nnpm install -g mkdirp\n```\n\nto get the command.\n\n# license\n\nMIT\n","readmeFilename":"readme.markdown","homepage":"https://github.com/substack/node-mkdirp#readme","bugs":{"url":"https://github.com/substack/node-mkdirp/issues"},"_attachments":{},"_etag":"\"1PVL48LVUJKMJX26T2KIO0E9A\""}
\ No newline at end of file
+{"_id":"mkdirp","_rev":"191-423bc2a7efe6cdc331ba1c233370c1ee","name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","dist-tags":{"latest":"0.5.1"},"versions":{"0.0.1":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.0.1","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"modules":{"index":"./index"},"keywords":["mkdir","directory"],"repository":{"type":"git","url":"http://github.com/substack/node-mkdirp.git"},"engines":{"node":"*"},"_id":"mkdirp@0.0.1","_nodeSupported":true,"_npmVersion":"0.2.12-1","_nodeVersion":"v0.2.5","dist":{"shasum":"3fbd9f4711a5234233dc6c9d7a052d4b9f83b416","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.0.1.tgz"},"directories":{}},"0.0.2":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.0.2","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"http://github.com/substack/node-mkdirp.git"},"license":"MIT/X11","engines":{"node":"*"},"_id":"mkdirp@0.0.2","_engineSupported":true,"_npmVersion":"0.2.18","_nodeVersion":"v0.3.8-pre","directories":{},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"d9438082daac12691c71d64076706c8a5c3511b6","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.0.2.tgz"}},"0.0.3":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.0.3","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"expresso"},"devDependencies":{"expresso":"0.7.x"},"license":"MIT/X11","engines":{"node":"*"},"_id":"mkdirp@0.0.3","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"5a7d88a26857023759ffee7fe4c0b28b0f0066b9","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.0.3.tgz"},"directories":{}},"0.0.4":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.0.4","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"expresso"},"devDependencies":{"expresso":"0.7.x"},"license":"MIT/X11","engines":{"node":"*"},"_id":"mkdirp@0.0.4","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"fbb491deec0b9b00869f52582e5f431b3681d2f5","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.0.4.tgz"},"directories":{}},"0.0.5":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.0.5","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"expresso"},"devDependencies":{"expresso":"0.7.x"},"license":"MIT/X11","engines":{"node":"*"},"_id":"mkdirp@0.0.5","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"375facfa634b17dcdf734c56f59ddae5102811c8","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.0.5.tgz"},"directories":{}},"0.0.6":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.0.6","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"expresso"},"devDependencies":{"expresso":"0.7.x"},"license":"MIT/X11","engines":{"node":"*"},"_id":"mkdirp@0.0.6","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"0965de71060cf5e237ffa795243cb5d9a78d335b","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.0.6.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.0.7":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.0.7","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"node node_modules/tap/bin/tap.js test/*.js"},"devDependencies":{"tap":"0.0.x"},"license":"MIT/X11","engines":{"node":"*"},"_id":"mkdirp@0.0.7","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"d89b4f0e4c3e5e5ca54235931675e094fe1a5072","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.0.7.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.1.0":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.1.0","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"0.0.x"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.1.0","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.101","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"53212930f7bd75f187b6c8688eb0a5fd69b7d118","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.1.0.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.2.0":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.2.0","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"0.0.x"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.2.0","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.101","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"29dd87f198880b568d1efce0980e7231b048f3aa","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.2.0.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.2.1":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.2.1","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"0.0.x"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.2.1","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.101","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"2ef920435c8511e135137a33f18a9e40cf9dd166","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.2.1.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.2.2":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.2.2","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"0.0.x"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.2.2","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"7235f2a2062aaf3619189b9f4772114c30944498","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.2.2.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.3.0":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.3.0","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"0.0.x"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.3.0","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"1bbf5ab1ba827af23575143490426455f481fe1e","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.3.1":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.3.1","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"~0.2.4"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.3.1","dependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"bee3db22a2aa1c81d4b4c0db39c7da9888799593","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.1.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.3.2":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.3.2","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"~0.2.4"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.3.2","dependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"4bfb891e9c48b93d6b567f2c3cf2dd3f56bcdef8","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.2.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.3.3":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.3.3","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"~0.2.4"},"license":"MIT/X11","engines":{"node":"*"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"mkdirp@0.3.3","dependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.19","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"595e251c1370c3a68bab2136d0e348b8105adf13","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.3.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.3.4":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.3.4","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"http://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"~0.2.4"},"license":"MIT/X11","engines":{"node":"*"},"_id":"mkdirp@0.3.4","dist":{"shasum":"f8c81d213b7299a031f193a57d752a17d2f6c7d8","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.4.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.3.5":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.3.5","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"http://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"~0.4.0"},"license":"MIT","_id":"mkdirp@0.3.5","dist":{"shasum":"de3e5f8961c88c787ee1368df849ac4413eca8d7","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"substack","email":"mail@substack.net"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.4.0":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.4.0","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"http://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"devDependencies":{"tap":"~0.4.0"},"bin":{"mkdirp":"bin/cmd.js"},"license":"MIT","bugs":{"url":"https://github.com/substack/node-mkdirp/issues"},"homepage":"https://github.com/substack/node-mkdirp","_id":"mkdirp@0.4.0","dist":{"shasum":"291ac2a2d43a19c478662577b5be846fe83b5923","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.4.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"substack","email":"mail@substack.net"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.4.1":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.4.1","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"http://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"dependencies":{"minimist":"0.0.8"},"devDependencies":{"tap":"~0.4.0"},"bin":{"mkdirp":"bin/cmd.js"},"license":"MIT","bugs":{"url":"https://github.com/substack/node-mkdirp/issues"},"homepage":"https://github.com/substack/node-mkdirp","_id":"mkdirp@0.4.1","dist":{"shasum":"4d467afabfdf8ae460c2da656eae8f7b21af4558","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.4.1.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"substack","email":"mail@substack.net"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.4.2":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.4.2","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"https://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"dependencies":{"minimist":"0.0.8"},"devDependencies":{"tap":"~0.4.0"},"bin":{"mkdirp":"bin/cmd.js"},"license":"MIT","bugs":{"url":"https://github.com/substack/node-mkdirp/issues"},"homepage":"https://github.com/substack/node-mkdirp","_id":"mkdirp@0.4.2","dist":{"shasum":"427c8c18ece398b932f6f666f4e1e5b7740e78c8","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.4.2.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"substack","email":"mail@substack.net"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.5.0":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.5.0","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"./index","keywords":["mkdir","directory"],"repository":{"type":"git","url":"https://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"dependencies":{"minimist":"0.0.8"},"devDependencies":{"tap":"~0.4.0","mock-fs":"~2.2.0"},"bin":{"mkdirp":"bin/cmd.js"},"license":"MIT","bugs":{"url":"https://github.com/substack/node-mkdirp/issues"},"homepage":"https://github.com/substack/node-mkdirp","_id":"mkdirp@0.5.0","dist":{"shasum":"1d73076a6df986cd9344e15e71fcc05a4c9abf12","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"substack","email":"mail@substack.net"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.5.1":{"name":"mkdirp","description":"Recursively mkdir, like `mkdir -p`","version":"0.5.1","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"main":"index.js","keywords":["mkdir","directory"],"repository":{"type":"git","url":"git+https://github.com/substack/node-mkdirp.git"},"scripts":{"test":"tap test/*.js"},"dependencies":{"minimist":"0.0.8"},"devDependencies":{"tap":"1","mock-fs":"2 >=2.7.0"},"bin":{"mkdirp":"bin/cmd.js"},"license":"MIT","gitHead":"d4eff0f06093aed4f387e88e9fc301cb76beedc7","bugs":{"url":"https://github.com/substack/node-mkdirp/issues"},"homepage":"https://github.com/substack/node-mkdirp#readme","_id":"mkdirp@0.5.1","_shasum":"30057438eac6cf7f8c4767f38648d6697d75c903","_from":".","_npmVersion":"2.9.0","_nodeVersion":"2.0.0","_npmUser":{"name":"substack","email":"substack@gmail.com"},"dist":{"shasum":"30057438eac6cf7f8c4767f38648d6697d75c903","tarball":"http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}}},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"time":{"modified":"2015-05-14T02:27:01.553Z","created":"2011-01-06T02:54:36.080Z","0.0.1":"2011-01-06T02:54:36.496Z","0.0.2":"2011-02-14T20:11:44.988Z","0.0.3":"2011-06-20T04:02:44.361Z","0.0.4":"2011-06-29T00:28:32.272Z","0.0.5":"2011-06-29T18:22:05.839Z","0.0.6":"2011-08-20T21:37:10.730Z","0.0.7":"2011-09-10T22:50:08.879Z","0.1.0":"2011-11-06T06:32:23.379Z","0.2.0":"2011-11-16T05:32:17.036Z","0.2.1":"2011-11-16T09:26:51.089Z","0.2.2":"2012-01-08T05:02:35.484Z","0.3.0":"2012-01-20T02:20:42.042Z","0.3.1":"2012-03-31T19:51:38.912Z","0.3.2":"2012-04-30T08:52:12.424Z","0.3.3":"2012-06-05T15:54:31.889Z","0.3.4":"2012-08-20T12:27:24.983Z","0.3.5":"2013-02-22T11:44:25.486Z","0.4.0":"2014-04-22T22:21:21.058Z","0.4.1":"2014-05-04T02:20:59.368Z","0.4.2":"2014-05-06T01:40:35.608Z","0.5.0":"2014-05-06T02:28:23.769Z","0.5.1":"2015-05-14T02:27:01.553Z"},"author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"repository":{"type":"git","url":"git+https://github.com/substack/node-mkdirp.git"},"users":{"pid":true,"dodo":true,"tellnes":true,"fgribreau":true,"jswartwood":true,"m42am":true,"superjoe":true,"chrisdickinson":true,"michaelnisi":true,"dannydulai":true,"dbrockman":true,"jpoehls":true,"chilts":true,"jamesmgreene":true,"forbeslindesay":true,"mvolkmann":true,"netroy":true,"kastor":true,"florianwendelborn":true,"werle":true,"pana":true,"isaacs":true,"polotek":true,"timur.shemsedinov":true,"jacques":true,"cilindrox":true,"greelgorke":true,"esundahl":true,"alanbhamilton":true,"coderaiser":true,"feross":true,"seldo":true,"tarcio":true,"biggora":true,"jifeng":true,"leventkaragol":true,"maxzhang":true,"cocopas":true,"peterbeno":true,"jacoborus":true,"zeusdeux":true,"redmed":true,"jacksontian":true,"solodu":true,"davidrlee":true,"sdolard":true,"krry":true,"tchey":true,"atd":true,"fill":true,"omrilotan":true,"pingjiang":true,"bmpvieira":true,"buster":true,"yourhoneysky":true,"asantiago":true,"caudralys":true,"ali1k":true,"peckzeg":true,"shieldax":true,"ryanj":true,"mihaiv":true,"lupus":true,"ycloud":true,"nayrangnu":true,"larixk":true,"masonwan":true,"f124275809":true,"cellule":true,"pdilyard":true,"hzapata":true,"tmypawa":true,"benoror":true,"mpcref":true,"kulakowka":true,"trusktr":true,"jakeginnivan":true,"pnevares":true,"seanjh":true,"pstoev":true,"subchen":true,"schnittstabil":true,"rbartoli":true,"shaneli":true,"itonyyo":true,"icirellik":true,"akiva":true,"mysticatea":true,"kelerliao":true,"wangnan0610":true,"mjwilliams":true,"jasoncmcg":true,"nwinant":true,"khaledkaram":true,"marcghorayeb":true,"elrolito":true,"shriek":true,"garrickajo":true,"ddffx":true,"mattms":true,"axelav":true,"ocd_lionel":true,"kappuccino":true,"emiljohansson":true,"pirijan":true,"ugarz":true,"nice_body":true,"sixertoy":true,"mikend":true,"nketchum":true,"evan2x":true,"jasonevrtt":true,"parkerproject":true,"gamr":true,"incendiary":true,"alectic":true},"keywords":["mkdir","directory"],"license":"MIT","readme":"# mkdirp\n\nLike `mkdir -p`, but in node.js!\n\n[![build status](https://secure.travis-ci.org/substack/node-mkdirp.png)](http://travis-ci.org/substack/node-mkdirp)\n\n# example\n\n## pow.js\n\n```js\nvar mkdirp = require('mkdirp');\n    \nmkdirp('/tmp/foo/bar/baz', function (err) {\n    if (err) console.error(err)\n    else console.log('pow!')\n});\n```\n\nOutput\n\n```\npow!\n```\n\nAnd now /tmp/foo/bar/baz exists, huzzah!\n\n# methods\n\n```js\nvar mkdirp = require('mkdirp');\n```\n\n## mkdirp(dir, opts, cb)\n\nCreate a new directory and any necessary subdirectories at `dir` with octal\npermission string `opts.mode`. If `opts` is a non-object, it will be treated as\nthe `opts.mode`.\n\nIf `opts.mode` isn't specified, it defaults to `0777 & (~process.umask())`.\n\n`cb(err, made)` fires with the error or the first directory `made`\nthat had to be created, if any.\n\nYou can optionally pass in an alternate `fs` implementation by passing in\n`opts.fs`. Your implementation should have `opts.fs.mkdir(path, mode, cb)` and\n`opts.fs.stat(path, cb)`.\n\n## mkdirp.sync(dir, opts)\n\nSynchronously create a new directory and any necessary subdirectories at `dir`\nwith octal permission string `opts.mode`. If `opts` is a non-object, it will be\ntreated as the `opts.mode`.\n\nIf `opts.mode` isn't specified, it defaults to `0777 & (~process.umask())`.\n\nReturns the first directory that had to be created, if any.\n\nYou can optionally pass in an alternate `fs` implementation by passing in\n`opts.fs`. Your implementation should have `opts.fs.mkdirSync(path, mode)` and\n`opts.fs.statSync(path)`.\n\n# usage\n\nThis package also ships with a `mkdirp` command.\n\n```\nusage: mkdirp [DIR1,DIR2..] {OPTIONS}\n\n  Create each supplied directory including any necessary parent directories that\n  don't yet exist.\n  \n  If the directory already exists, do nothing.\n\nOPTIONS are:\n\n  -m, --mode   If a directory needs to be created, set the mode as an octal\n               permission string.\n\n```\n\n# install\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm install mkdirp\n```\n\nto get the library, or\n\n```\nnpm install -g mkdirp\n```\n\nto get the command.\n\n# license\n\nMIT\n","readmeFilename":"readme.markdown","homepage":"https://github.com/substack/node-mkdirp#readme","bugs":{"url":"https://github.com/substack/node-mkdirp/issues"},"_attachments":{},"_etag":"\"5ZEZ6ASNCXNV739DED70FRXKK\""}
\ No newline at end of file
index 0247d16dce49b674a5fec83dd973268d813e685a..9aceaf162bfbadbe716708d9adc10cd53118f2e0 100644 (file)
@@ -1 +1 @@
-{"_id":"rimraf","_rev":"141-60c75131727936bf2638434590d77160","name":"rimraf","description":"A deep deletion module for node (like `rm -rf`)","dist-tags":{"latest":"2.4.1"},"versions":{"1.0.0":{"name":"rimraf","version":"1.0.0","main":"./rimraf","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"repository":"git://github.com/isaacs/rimraf.git","scripts":{"test":"cd ./test && bash run.sh"},"_id":"rimraf@1.0.0","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.0","_nodeVersion":"v0.4.0-pre","directories":{},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"5797e55b587c77fc3e5b61051e429d1b00310840","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.0.tgz"}},"1.0.1":{"name":"rimraf","version":"1.0.1","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"contributors":[{"name":"Wayne Larsen","url":"http://github.com/wvl"}],"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"dependencies":{},"devDependencies":{},"_id":"rimraf@1.0.1","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.1rc7","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"8ff61e034ccd6f5e687b3d4f4da9247c4da7dd46","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.1.tgz"},"directories":{}},"1.0.2":{"name":"rimraf","version":"1.0.2","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_id":"rimraf@1.0.2","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"}],"dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.6","_nodeVersion":"v0.4.8-pre","_defaultsLoaded":true,"dist":{"shasum":"4cc292a756559123ee9e4995cffb783e769b50a3","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.2.tgz"},"directories":{}},"1.0.4":{"name":"rimraf","version":"1.0.4","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmJsonOpts":{"file":"/Users/isaacs/.npm/rimraf/1.0.4/package/package.json","wscript":false,"serverjs":false,"contributors":["Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)","Wayne Larsen <wayne@larsen.st> (http://github.com/wvl)","ritch <skawful@gmail.com>"]},"_id":"rimraf@1.0.4","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"}],"dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.22","_nodeVersion":"v0.4.11-pre","_defaultsLoaded":true,"dist":{"shasum":"2137e3d9a45c547b8df9f1309b8fbca29ea20822","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.4.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"1.0.5":{"name":"rimraf","version":"1.0.5","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmJsonOpts":{"file":"/Users/isaacs/.npm/rimraf/1.0.5/package/package.json","wscript":false,"serverjs":false,"contributors":["Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)","Wayne Larsen <wayne@larsen.st> (http://github.com/wvl)","ritch <skawful@gmail.com>","Marcel Laverdet"]},"_id":"rimraf@1.0.5","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"}],"dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.27","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"2c988219578bc569e461b9202bc22f5dbfa5b3e3","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.5.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"1.0.6":{"name":"rimraf","version":"1.0.6","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmJsonOpts":{"file":"/Users/isaacs/.npm/rimraf/1.0.6/package/package.json","wscript":false,"serverjs":false,"contributors":["Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)","Wayne Larsen <wayne@larsen.st> (http://github.com/wvl)","ritch <skawful@gmail.com>","Marcel Laverdet"]},"_id":"rimraf@1.0.6","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"}],"dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.27","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"8e404afc4edc5ac544dce5441a148e52657e5860","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.6.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"1.0.7":{"name":"rimraf","version":"1.0.7","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"rimraf@1.0.7","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"}],"dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.30","_nodeVersion":"v0.5.8-pre","_defaultsLoaded":true,"dist":{"shasum":"9b664339fb366bf669d79672718336eba8d6adb4","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.7.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"1.0.8":{"name":"rimraf","version":"1.0.8","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"rimraf@1.0.8","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"}],"dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.94","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"d8808068156c5135b16842348304b92c86f23bd1","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.8.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"1.0.9":{"name":"rimraf","version":"1.0.9","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"rimraf@1.0.9","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"}],"dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.0-alpha-6","_nodeVersion":"v0.6.4","_defaultsLoaded":true,"dist":{"shasum":"be4801ff76c2ba6f1c50c78e9700eb1d21f239f1","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.9.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.0.0":{"name":"rimraf","version":"2.0.0","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1.1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"rimraf@2.0.0","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"dependencies":{"graceful-fs":"~1.1"},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.0-3","_nodeVersion":"v0.6.9-pre","_defaultsLoaded":true,"dist":{"shasum":"61bafdc9d6b385e8de0101b4b47c3d01b856c1ee","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.0.0.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.0.1":{"name":"rimraf","version":"2.0.1","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1.1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"rimraf@2.0.1","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"dependencies":{"graceful-fs":"~1.1"},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.0-3","_nodeVersion":"v0.6.9-pre","_defaultsLoaded":true,"dist":{"shasum":"6e58b6e7d3980bd620618d0703d502f872078fee","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.0.1.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.0.2":{"name":"rimraf","version":"2.0.2","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1.1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"rimraf@2.0.2","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"dependencies":{"graceful-fs":"~1.1"},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.7.10-pre","_defaultsLoaded":true,"dist":{"shasum":"2a860f3f74bd7975002f73cb0b003b218ec351e4","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.0.2.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.0.3":{"name":"rimraf","version":"2.0.3","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1.1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"_id":"rimraf@2.0.3","dependencies":{"graceful-fs":"~1.1"},"dist":{"shasum":"f50a2965e7144e9afd998982f15df706730f56a9","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.0.3.tgz"},"_npmVersion":"1.1.69","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.1.0":{"name":"rimraf","version":"2.1.0","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1.1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"_id":"rimraf@2.1.0","dependencies":{"graceful-fs":"~1.1"},"dist":{"shasum":"6003214d56590b613791b457b4df6fb3170dc73b","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.1.0.tgz"},"_npmVersion":"1.1.70","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.1.1":{"name":"rimraf","version":"2.1.1","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1.1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"_id":"rimraf@2.1.1","dependencies":{"graceful-fs":"~1.1"},"dist":{"shasum":"ee9cec7e2d796ef59ceaa5f3a3024c225e630c61","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.1.1.tgz"},"_npmVersion":"1.1.70","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.1.2":{"name":"rimraf","version":"2.1.2","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1.1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"_id":"rimraf@2.1.2","dependencies":{"graceful-fs":"~1.1"},"dist":{"shasum":"82b9bedb9f88c39c43a20b01f209551b34a2ab76","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.1.2.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.1.3":{"name":"rimraf","version":"2.1.3","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"_id":"rimraf@2.1.3","dependencies":{"graceful-fs":"~1"},"dist":{"shasum":"23f9915e1935e2548fee061ae982316006f66322","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.1.3.tgz"},"_from":".","_npmVersion":"1.2.4","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.1.4":{"name":"rimraf","version":"2.1.4","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"_id":"rimraf@2.1.4","dependencies":{"graceful-fs":"~1"},"dist":{"shasum":"5a6eb62eeda068f51ede50f29b3e5cd22f3d9bb2","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.1.4.tgz"},"_from":".","_npmVersion":"1.2.7","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.0":{"name":"rimraf","version":"2.2.0","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"dependencies":{"graceful-fs":"~1"},"_id":"rimraf@2.2.0","dist":{"shasum":"70797542e81a935849443d7b69bec612ca74c96e","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.0.tgz"},"_from":".","_npmVersion":"1.3.0","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.1":{"name":"rimraf","version":"2.2.1","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"dependencies":{"graceful-fs":"~1"},"_id":"rimraf@2.2.1","dist":{"shasum":"8f49c57874ce166b667fbfecac2cdf7f26d3d8a5","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.1.tgz"},"_from":".","_npmVersion":"1.3.4","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.2":{"name":"rimraf","version":"2.2.2","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~2"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"dependencies":{"graceful-fs":"~2"},"_id":"rimraf@2.2.2","dist":{"shasum":"d99ec41dc646e55bf7a7a44a255c28bef33a8abf","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.2.tgz"},"_from":".","_npmVersion":"1.3.4","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.3":{"name":"rimraf","version":"2.2.3","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~2"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","dependencies":{"graceful-fs":"~2"},"_id":"rimraf@2.2.3","dist":{"shasum":"ed60a43d480a1d576d0715aadf36181ffe3186c6","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.3.tgz"},"_from":".","_npmVersion":"1.3.15","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.4":{"name":"rimraf","version":"2.2.4","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~2"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","dependencies":{"graceful-fs":"~2"},"_id":"rimraf@2.2.4","dist":{"shasum":"9f0b530f829f7b655a6e4d2fd8cf4c042336ef58","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.4.tgz"},"_from":".","_npmVersion":"1.3.15","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.5":{"name":"rimraf","version":"2.2.5","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.2.5","dist":{"shasum":"4e5c4f667b121afa806d0c5b58920996f9478aa0","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.5.tgz"},"_from":".","_npmVersion":"1.3.15","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.6":{"name":"rimraf","version":"2.2.6","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.2.6","dist":{"shasum":"c59597569b14d956ad29cacc42bdddf5f0ea4f4c","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.8":{"name":"rimraf","version":"2.2.8","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.2.8","_shasum":"e439be2aaee327321952730f99a8929e4fc50582","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"e439be2aaee327321952730f99a8929e4fc50582","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"},"directories":{}},"2.3.0":{"name":"rimraf","version":"2.3.0","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^4.4.1"},"files":["bin.js","rimraf.js","LICENSE","README.md"],"gitHead":"e4e9dcbf64d55b8ced01a914e08827715089190a","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.3.0","_shasum":"a5f0f3c702e39939be3ecbd1f7098f99750b5ed8","_from":".","_npmVersion":"2.6.0","_nodeVersion":"1.4.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"a5f0f3c702e39939be3ecbd1f7098f99750b5ed8","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.3.0.tgz"},"directories":{}},"2.3.1":{"name":"rimraf","version":"2.3.1","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^4.4.2"},"files":["bin.js","rimraf.js","LICENSE","README.md"],"gitHead":"aa707db2fb5b11c35fc614a1472775373dc9d46c","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.3.1","_shasum":"f83df78c168d5daf9f021e8e092e7a165898ee75","_from":".","_npmVersion":"2.6.0","_nodeVersion":"1.4.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"f83df78c168d5daf9f021e8e092e7a165898ee75","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.3.1.tgz"},"directories":{}},"2.3.2":{"name":"rimraf","version":"2.3.2","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^4.4.2"},"files":["bin.js","rimraf.js","LICENSE","README.md"],"gitHead":"9d5ab4a8b6986ec909af04f6d91315e98f5893e8","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.3.2","_shasum":"7304bd9275c401b89103b106b3531c1ef0c02fe9","_from":".","_npmVersion":"2.7.0","_nodeVersion":"1.4.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"7304bd9275c401b89103b106b3531c1ef0c02fe9","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.3.2.tgz"},"directories":{}},"2.3.3":{"name":"rimraf","version":"2.3.3","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^4.4.2"},"files":["bin.js","rimraf.js","LICENSE","README.md"],"gitHead":"ad4efe8102a72c77bf2b13165ecc2229a9a68955","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.3.3","_shasum":"d0073d8b3010611e8f3ad377b08e9a3c18b98f06","_from":".","_npmVersion":"2.7.6","_nodeVersion":"1.7.1","_npmUser":{"name":"isaacs","email":"isaacs@npmjs.com"},"dist":{"shasum":"d0073d8b3010611e8f3ad377b08e9a3c18b98f06","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.3.3.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.3.4":{"name":"rimraf","version":"2.3.4","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":"ISC","repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^4.4.2"},"files":["bin.js","rimraf.js","LICENSE","README.md"],"gitHead":"2a6cc45bbbdd8da5fd703d8af62843565f7dea57","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf#readme","_id":"rimraf@2.3.4","_shasum":"82d9bc1b2fcf31e205ac7b28138a025d08e9159a","_from":".","_npmVersion":"2.10.0","_nodeVersion":"2.0.1","_npmUser":{"name":"isaacs","email":"isaacs@npmjs.com"},"dist":{"shasum":"82d9bc1b2fcf31e205ac7b28138a025d08e9159a","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.3.4.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.4.0":{"name":"rimraf","version":"2.4.0","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":"ISC","repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"tap test/*.js"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^4.4.2"},"files":["bin.js","rimraf.js","LICENSE","README.md"],"devDependencies":{"mkdirp":"^0.5.1","tap":"^1.2.0"},"gitHead":"2128f0b9ade05a81394dd21a383fa309dd9eca94","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf#readme","_id":"rimraf@2.4.0","_shasum":"40ba0416037d8511ecb50f6b07cf8d18e658a864","_from":".","_npmVersion":"2.10.1","_nodeVersion":"2.0.1","_npmUser":{"name":"isaacs","email":"isaacs@npmjs.com"},"dist":{"shasum":"40ba0416037d8511ecb50f6b07cf8d18e658a864","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.4.0.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.4.1":{"name":"rimraf","version":"2.4.1","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":"ISC","repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"tap test/*.js"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^4.4.2"},"files":["bin.js","rimraf.js","LICENSE","README.md"],"devDependencies":{"mkdirp":"^0.5.1","tap":"^1.2.0"},"gitHead":"9b97ac62e1b459d84dbe18f20757bfe4374e65ab","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf#readme","_id":"rimraf@2.4.1","_shasum":"99ff3cc1d61d687b67489b9f97cfa9d3db3b9e48","_from":".","_npmVersion":"3.0.0","_nodeVersion":"2.2.1","_npmUser":{"name":"isaacs","email":"isaacs@npmjs.com"},"dist":{"shasum":"99ff3cc1d61d687b67489b9f97cfa9d3db3b9e48","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.4.1.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}}},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"time":{"modified":"2015-06-30T18:02:24.393Z","created":"2011-02-08T08:55:37.756Z","1.0.0":"2011-02-08T08:55:39.437Z","1.0.1":"2011-04-13T18:06:00.422Z","1.0.2":"2011-05-30T18:33:02.093Z","1.0.4":"2011-08-07T03:59:00.634Z","1.0.5":"2011-09-03T00:20:05.595Z","1.0.6":"2011-09-03T00:30:43.110Z","1.0.7":"2011-09-25T00:26:39.319Z","1.0.8":"2011-10-07T18:25:44.535Z","1.0.9":"2011-12-03T16:52:51.833Z","2.0.0":"2012-01-30T02:20:45.661Z","2.0.1":"2012-01-30T17:07:51.384Z","2.0.2":"2012-06-08T21:19:19.066Z","2.0.3":"2012-12-15T22:59:57.912Z","2.1.0":"2012-12-20T23:23:50.937Z","2.1.1":"2012-12-21T02:23:38.182Z","2.1.2":"2013-01-22T20:50:45.534Z","2.1.3":"2013-02-06T00:24:04.069Z","2.1.4":"2013-02-06T14:58:43.510Z","2.2.0":"2013-06-21T14:52:14.555Z","2.2.1":"2013-07-14T18:48:37.747Z","2.2.2":"2013-07-22T16:20:26.910Z","2.2.3":"2013-11-29T16:55:07.432Z","2.2.4":"2013-11-29T16:59:28.538Z","2.2.5":"2013-12-09T17:05:49.993Z","2.2.6":"2014-01-15T23:58:31.660Z","2.2.7":"2014-05-05T22:17:46.141Z","2.2.8":"2014-05-06T16:00:05.895Z","2.3.0":"2015-03-03T23:25:07.298Z","2.3.1":"2015-03-05T02:37:34.817Z","2.3.2":"2015-03-10T01:13:34.964Z","2.3.3":"2015-04-30T14:18:05.546Z","2.3.4":"2015-05-19T01:37:39.894Z","2.4.0":"2015-06-07T17:20:09.158Z","2.4.1":"2015-06-30T18:02:24.393Z"},"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"users":{"fgribreau":true,"jswartwood":true,"superjoe":true,"jpoehls":true,"jamesmgreene":true,"forbeslindesay":true,"mvolkmann":true,"pid":true,"oddjobsman":true,"manishrc":true,"esundahl":true,"coderaiser":true,"maxzhang":true,"jimnox":true,"kahboom":true,"tunnckocore":true,"fanchangyong":true,"kxbrand":true,"fill":true,"joreyaesh":true,"uipoet":true,"wengqianshan":true,"bucaran":true,"nfd":true,"phoenix-xsy":true,"yourhoneysky":true,"gdbtek":true,"alxe.master":true,"shanegxxiao":true,"cellule":true,"jimster305":true,"ajduke":true,"phenome":true,"ignatovmsu":true,"pstoev":true,"jamescostian":true,"simplyianm":true,"schnittstabil":true,"itonyyo":true,"akiva":true,"mysticatea":true,"ruffle1986":true,"mikkoh":true,"9joneg":true,"russiansoon":true,"tunderdomb":true,"mkamayd":true,"isyara":true,"michaelnisi":true,"blakecscott":true,"lmhs":true,"mattms":true,"noyobo":true},"readme":"The [UNIX command](http://en.wikipedia.org/wiki/Rm_(Unix)) `rm -rf` for node.  \n\nInstall with `npm install rimraf`, or just drop rimraf.js somewhere.\n\n## API\n\n`rimraf(f, callback)`\n\nThe callback will be called with an error if there is one.  Certain\nerrors are handled for you:\n\n* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of\n  `opts.maxBusyTries` times before giving up, adding 100ms of wait\n  between each attempt.  The default `maxBusyTries` is 3.\n* `ENOENT` - If the file doesn't exist, rimraf will return\n  successfully, since your desired outcome is already the case.\n* `EMFILE` - Since `readdir` requires opening a file descriptor, it's\n  possible to hit `EMFILE` if too many file descriptors are in use.\n  In the sync case, there's nothing to be done for this.  But in the\n  async case, rimraf will gradually back off with timeouts up to\n  `opts.emfileWait` ms, which defaults to 1000.\n\n## rimraf.sync\n\nIt can remove stuff synchronously, too.  But that's not so good.  Use\nthe async API.  It's better.\n\n## CLI\n\nIf installed with `npm install rimraf -g` it can be used as a global\ncommand `rimraf <path>` which is useful for cross platform support.\n\n## mkdirp\n\nIf you need to create a directory recursively, check out\n[mkdirp](https://github.com/substack/node-mkdirp).\n","readmeFilename":"README.md","homepage":"https://github.com/isaacs/rimraf#readme","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"license":"ISC","_attachments":{},"_etag":"\"57AX2VCNX0K3WIFJ36VILDL32\""}
\ No newline at end of file
+{"_id":"rimraf","_rev":"161-b2274a8f4628f1a0c51159fa23ee8bb7","name":"rimraf","description":"A deep deletion module for node (like `rm -rf`)","dist-tags":{"latest":"2.4.3"},"versions":{"1.0.0":{"name":"rimraf","version":"1.0.0","main":"./rimraf","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"repository":"git://github.com/isaacs/rimraf.git","scripts":{"test":"cd ./test && bash run.sh"},"_id":"rimraf@1.0.0","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.0","_nodeVersion":"v0.4.0-pre","directories":{},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"5797e55b587c77fc3e5b61051e429d1b00310840","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.0.tgz"}},"1.0.1":{"name":"rimraf","version":"1.0.1","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"contributors":[{"name":"Wayne Larsen","url":"http://github.com/wvl"}],"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"dependencies":{},"devDependencies":{},"_id":"rimraf@1.0.1","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.1rc7","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"8ff61e034ccd6f5e687b3d4f4da9247c4da7dd46","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.1.tgz"},"directories":{}},"1.0.2":{"name":"rimraf","version":"1.0.2","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_id":"rimraf@1.0.2","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"}],"dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.6","_nodeVersion":"v0.4.8-pre","_defaultsLoaded":true,"dist":{"shasum":"4cc292a756559123ee9e4995cffb783e769b50a3","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.2.tgz"},"directories":{}},"1.0.4":{"name":"rimraf","version":"1.0.4","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmJsonOpts":{"file":"/Users/isaacs/.npm/rimraf/1.0.4/package/package.json","wscript":false,"serverjs":false,"contributors":["Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)","Wayne Larsen <wayne@larsen.st> (http://github.com/wvl)","ritch <skawful@gmail.com>"]},"_id":"rimraf@1.0.4","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"}],"dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.22","_nodeVersion":"v0.4.11-pre","_defaultsLoaded":true,"dist":{"shasum":"2137e3d9a45c547b8df9f1309b8fbca29ea20822","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.4.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"1.0.5":{"name":"rimraf","version":"1.0.5","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmJsonOpts":{"file":"/Users/isaacs/.npm/rimraf/1.0.5/package/package.json","wscript":false,"serverjs":false,"contributors":["Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)","Wayne Larsen <wayne@larsen.st> (http://github.com/wvl)","ritch <skawful@gmail.com>","Marcel Laverdet"]},"_id":"rimraf@1.0.5","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"}],"dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.27","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"2c988219578bc569e461b9202bc22f5dbfa5b3e3","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.5.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"1.0.6":{"name":"rimraf","version":"1.0.6","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmJsonOpts":{"file":"/Users/isaacs/.npm/rimraf/1.0.6/package/package.json","wscript":false,"serverjs":false,"contributors":["Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)","Wayne Larsen <wayne@larsen.st> (http://github.com/wvl)","ritch <skawful@gmail.com>","Marcel Laverdet"]},"_id":"rimraf@1.0.6","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"}],"dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.27","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"8e404afc4edc5ac544dce5441a148e52657e5860","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.6.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"1.0.7":{"name":"rimraf","version":"1.0.7","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"rimraf@1.0.7","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"}],"dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.30","_nodeVersion":"v0.5.8-pre","_defaultsLoaded":true,"dist":{"shasum":"9b664339fb366bf669d79672718336eba8d6adb4","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.7.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"1.0.8":{"name":"rimraf","version":"1.0.8","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"rimraf@1.0.8","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"}],"dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.94","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"d8808068156c5135b16842348304b92c86f23bd1","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.8.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"1.0.9":{"name":"rimraf","version":"1.0.9","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"rimraf@1.0.9","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"}],"dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.0-alpha-6","_nodeVersion":"v0.6.4","_defaultsLoaded":true,"dist":{"shasum":"be4801ff76c2ba6f1c50c78e9700eb1d21f239f1","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-1.0.9.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.0.0":{"name":"rimraf","version":"2.0.0","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1.1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"rimraf@2.0.0","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"dependencies":{"graceful-fs":"~1.1"},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.0-3","_nodeVersion":"v0.6.9-pre","_defaultsLoaded":true,"dist":{"shasum":"61bafdc9d6b385e8de0101b4b47c3d01b856c1ee","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.0.0.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.0.1":{"name":"rimraf","version":"2.0.1","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1.1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"rimraf@2.0.1","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"dependencies":{"graceful-fs":"~1.1"},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.0-3","_nodeVersion":"v0.6.9-pre","_defaultsLoaded":true,"dist":{"shasum":"6e58b6e7d3980bd620618d0703d502f872078fee","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.0.1.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.0.2":{"name":"rimraf","version":"2.0.2","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1.1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"rimraf@2.0.2","contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"dependencies":{"graceful-fs":"~1.1"},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.7.10-pre","_defaultsLoaded":true,"dist":{"shasum":"2a860f3f74bd7975002f73cb0b003b218ec351e4","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.0.2.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.0.3":{"name":"rimraf","version":"2.0.3","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1.1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"_id":"rimraf@2.0.3","dependencies":{"graceful-fs":"~1.1"},"dist":{"shasum":"f50a2965e7144e9afd998982f15df706730f56a9","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.0.3.tgz"},"_npmVersion":"1.1.69","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.1.0":{"name":"rimraf","version":"2.1.0","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1.1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"_id":"rimraf@2.1.0","dependencies":{"graceful-fs":"~1.1"},"dist":{"shasum":"6003214d56590b613791b457b4df6fb3170dc73b","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.1.0.tgz"},"_npmVersion":"1.1.70","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.1.1":{"name":"rimraf","version":"2.1.1","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1.1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"_id":"rimraf@2.1.1","dependencies":{"graceful-fs":"~1.1"},"dist":{"shasum":"ee9cec7e2d796ef59ceaa5f3a3024c225e630c61","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.1.1.tgz"},"_npmVersion":"1.1.70","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.1.2":{"name":"rimraf","version":"2.1.2","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1.1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"_id":"rimraf@2.1.2","dependencies":{"graceful-fs":"~1.1"},"dist":{"shasum":"82b9bedb9f88c39c43a20b01f209551b34a2ab76","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.1.2.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.1.3":{"name":"rimraf","version":"2.1.3","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"_id":"rimraf@2.1.3","dependencies":{"graceful-fs":"~1"},"dist":{"shasum":"23f9915e1935e2548fee061ae982316006f66322","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.1.3.tgz"},"_from":".","_npmVersion":"1.2.4","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.1.4":{"name":"rimraf","version":"2.1.4","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"_id":"rimraf@2.1.4","dependencies":{"graceful-fs":"~1"},"dist":{"shasum":"5a6eb62eeda068f51ede50f29b3e5cd22f3d9bb2","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.1.4.tgz"},"_from":".","_npmVersion":"1.2.7","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.0":{"name":"rimraf","version":"2.2.0","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"dependencies":{"graceful-fs":"~1"},"_id":"rimraf@2.2.0","dist":{"shasum":"70797542e81a935849443d7b69bec612ca74c96e","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.0.tgz"},"_from":".","_npmVersion":"1.3.0","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.1":{"name":"rimraf","version":"2.2.1","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~1"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"dependencies":{"graceful-fs":"~1"},"_id":"rimraf@2.2.1","dist":{"shasum":"8f49c57874ce166b667fbfecac2cdf7f26d3d8a5","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.1.tgz"},"_from":".","_npmVersion":"1.3.4","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.2":{"name":"rimraf","version":"2.2.2","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~2"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"dependencies":{"graceful-fs":"~2"},"_id":"rimraf@2.2.2","dist":{"shasum":"d99ec41dc646e55bf7a7a44a255c28bef33a8abf","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.2.tgz"},"_from":".","_npmVersion":"1.3.4","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.3":{"name":"rimraf","version":"2.2.3","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~2"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","dependencies":{"graceful-fs":"~2"},"_id":"rimraf@2.2.3","dist":{"shasum":"ed60a43d480a1d576d0715aadf36181ffe3186c6","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.3.tgz"},"_from":".","_npmVersion":"1.3.15","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.4":{"name":"rimraf","version":"2.2.4","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"optionalDependencies":{"graceful-fs":"~2"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","dependencies":{"graceful-fs":"~2"},"_id":"rimraf@2.2.4","dist":{"shasum":"9f0b530f829f7b655a6e4d2fd8cf4c042336ef58","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.4.tgz"},"_from":".","_npmVersion":"1.3.15","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.5":{"name":"rimraf","version":"2.2.5","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.2.5","dist":{"shasum":"4e5c4f667b121afa806d0c5b58920996f9478aa0","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.5.tgz"},"_from":".","_npmVersion":"1.3.15","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.6":{"name":"rimraf","version":"2.2.6","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.2.6","dist":{"shasum":"c59597569b14d956ad29cacc42bdddf5f0ea4f4c","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.2.8":{"name":"rimraf","version":"2.2.8","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.2.8","_shasum":"e439be2aaee327321952730f99a8929e4fc50582","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"e439be2aaee327321952730f99a8929e4fc50582","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"},"directories":{}},"2.3.0":{"name":"rimraf","version":"2.3.0","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^4.4.1"},"files":["bin.js","rimraf.js","LICENSE","README.md"],"gitHead":"e4e9dcbf64d55b8ced01a914e08827715089190a","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.3.0","_shasum":"a5f0f3c702e39939be3ecbd1f7098f99750b5ed8","_from":".","_npmVersion":"2.6.0","_nodeVersion":"1.4.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"a5f0f3c702e39939be3ecbd1f7098f99750b5ed8","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.3.0.tgz"},"directories":{}},"2.3.1":{"name":"rimraf","version":"2.3.1","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^4.4.2"},"files":["bin.js","rimraf.js","LICENSE","README.md"],"gitHead":"aa707db2fb5b11c35fc614a1472775373dc9d46c","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.3.1","_shasum":"f83df78c168d5daf9f021e8e092e7a165898ee75","_from":".","_npmVersion":"2.6.0","_nodeVersion":"1.4.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"f83df78c168d5daf9f021e8e092e7a165898ee75","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.3.1.tgz"},"directories":{}},"2.3.2":{"name":"rimraf","version":"2.3.2","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^4.4.2"},"files":["bin.js","rimraf.js","LICENSE","README.md"],"gitHead":"9d5ab4a8b6986ec909af04f6d91315e98f5893e8","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.3.2","_shasum":"7304bd9275c401b89103b106b3531c1ef0c02fe9","_from":".","_npmVersion":"2.7.0","_nodeVersion":"1.4.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"7304bd9275c401b89103b106b3531c1ef0c02fe9","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.3.2.tgz"},"directories":{}},"2.3.3":{"name":"rimraf","version":"2.3.3","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^4.4.2"},"files":["bin.js","rimraf.js","LICENSE","README.md"],"gitHead":"ad4efe8102a72c77bf2b13165ecc2229a9a68955","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.3.3","_shasum":"d0073d8b3010611e8f3ad377b08e9a3c18b98f06","_from":".","_npmVersion":"2.7.6","_nodeVersion":"1.7.1","_npmUser":{"name":"isaacs","email":"isaacs@npmjs.com"},"dist":{"shasum":"d0073d8b3010611e8f3ad377b08e9a3c18b98f06","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.3.3.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.3.4":{"name":"rimraf","version":"2.3.4","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":"ISC","repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^4.4.2"},"files":["bin.js","rimraf.js","LICENSE","README.md"],"gitHead":"2a6cc45bbbdd8da5fd703d8af62843565f7dea57","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf#readme","_id":"rimraf@2.3.4","_shasum":"82d9bc1b2fcf31e205ac7b28138a025d08e9159a","_from":".","_npmVersion":"2.10.0","_nodeVersion":"2.0.1","_npmUser":{"name":"isaacs","email":"isaacs@npmjs.com"},"dist":{"shasum":"82d9bc1b2fcf31e205ac7b28138a025d08e9159a","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.3.4.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.4.0":{"name":"rimraf","version":"2.4.0","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":"ISC","repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"tap test/*.js"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^4.4.2"},"files":["bin.js","rimraf.js","LICENSE","README.md"],"devDependencies":{"mkdirp":"^0.5.1","tap":"^1.2.0"},"gitHead":"2128f0b9ade05a81394dd21a383fa309dd9eca94","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf#readme","_id":"rimraf@2.4.0","_shasum":"40ba0416037d8511ecb50f6b07cf8d18e658a864","_from":".","_npmVersion":"2.10.1","_nodeVersion":"2.0.1","_npmUser":{"name":"isaacs","email":"isaacs@npmjs.com"},"dist":{"shasum":"40ba0416037d8511ecb50f6b07cf8d18e658a864","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.4.0.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.4.1":{"name":"rimraf","version":"2.4.1","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":"ISC","repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"tap test/*.js"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^4.4.2"},"files":["bin.js","rimraf.js","LICENSE","README.md"],"devDependencies":{"mkdirp":"^0.5.1","tap":"^1.2.0"},"gitHead":"9b97ac62e1b459d84dbe18f20757bfe4374e65ab","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf#readme","_id":"rimraf@2.4.1","_shasum":"99ff3cc1d61d687b67489b9f97cfa9d3db3b9e48","_from":".","_npmVersion":"3.0.0","_nodeVersion":"2.2.1","_npmUser":{"name":"isaacs","email":"isaacs@npmjs.com"},"dist":{"shasum":"99ff3cc1d61d687b67489b9f97cfa9d3db3b9e48","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.4.1.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.4.2":{"name":"rimraf","version":"2.4.2","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":"ISC","repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"tap test/*.js"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^5.0.14"},"files":["LICENSE","README.md","bin.js","rimraf.js"],"devDependencies":{"mkdirp":"^0.5.1","tap":"^1.3.1"},"gitHead":"4359e9d3b3c0f26e6abe3139a00b93337f1689d7","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf#readme","_id":"rimraf@2.4.2","_shasum":"ab4f39b08b72eae07c3d9fe9f4831aebfc9f431d","_from":".","_npmVersion":"3.1.0","_nodeVersion":"2.2.1","_npmUser":{"name":"isaacs","email":"isaacs@npmjs.com"},"dist":{"shasum":"ab4f39b08b72eae07c3d9fe9f4831aebfc9f431d","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.4.2.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"2.4.3":{"name":"rimraf","version":"2.4.3","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":"ISC","repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"tap test/*.js"},"bin":{"rimraf":"./bin.js"},"dependencies":{"glob":"^5.0.14"},"files":["LICENSE","README.md","bin.js","rimraf.js"],"devDependencies":{"mkdirp":"^0.5.1","tap":"^1.3.1"},"gitHead":"ec7050f8ca14c931b847414f18466e601ca7c02e","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf#readme","_id":"rimraf@2.4.3","_shasum":"e5b51c9437a4c582adb955e9f28cf8d945e272af","_from":".","_npmVersion":"3.2.2","_nodeVersion":"2.2.1","_npmUser":{"name":"isaacs","email":"isaacs@npmjs.com"},"dist":{"shasum":"e5b51c9437a4c582adb955e9f28cf8d945e272af","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}}},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"time":{"modified":"2015-08-26T22:30:40.696Z","created":"2011-02-08T08:55:37.756Z","1.0.0":"2011-02-08T08:55:39.437Z","1.0.1":"2011-04-13T18:06:00.422Z","1.0.2":"2011-05-30T18:33:02.093Z","1.0.4":"2011-08-07T03:59:00.634Z","1.0.5":"2011-09-03T00:20:05.595Z","1.0.6":"2011-09-03T00:30:43.110Z","1.0.7":"2011-09-25T00:26:39.319Z","1.0.8":"2011-10-07T18:25:44.535Z","1.0.9":"2011-12-03T16:52:51.833Z","2.0.0":"2012-01-30T02:20:45.661Z","2.0.1":"2012-01-30T17:07:51.384Z","2.0.2":"2012-06-08T21:19:19.066Z","2.0.3":"2012-12-15T22:59:57.912Z","2.1.0":"2012-12-20T23:23:50.937Z","2.1.1":"2012-12-21T02:23:38.182Z","2.1.2":"2013-01-22T20:50:45.534Z","2.1.3":"2013-02-06T00:24:04.069Z","2.1.4":"2013-02-06T14:58:43.510Z","2.2.0":"2013-06-21T14:52:14.555Z","2.2.1":"2013-07-14T18:48:37.747Z","2.2.2":"2013-07-22T16:20:26.910Z","2.2.3":"2013-11-29T16:55:07.432Z","2.2.4":"2013-11-29T16:59:28.538Z","2.2.5":"2013-12-09T17:05:49.993Z","2.2.6":"2014-01-15T23:58:31.660Z","2.2.7":"2014-05-05T22:17:46.141Z","2.2.8":"2014-05-06T16:00:05.895Z","2.3.0":"2015-03-03T23:25:07.298Z","2.3.1":"2015-03-05T02:37:34.817Z","2.3.2":"2015-03-10T01:13:34.964Z","2.3.3":"2015-04-30T14:18:05.546Z","2.3.4":"2015-05-19T01:37:39.894Z","2.4.0":"2015-06-07T17:20:09.158Z","2.4.1":"2015-06-30T18:02:24.393Z","2.4.2":"2015-07-19T21:44:13.360Z","2.4.3":"2015-08-26T22:30:40.696Z"},"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"users":{"fgribreau":true,"jswartwood":true,"superjoe":true,"jpoehls":true,"jamesmgreene":true,"forbeslindesay":true,"mvolkmann":true,"pid":true,"oddjobsman":true,"manishrc":true,"esundahl":true,"coderaiser":true,"maxzhang":true,"jimnox":true,"kahboom":true,"tunnckocore":true,"fanchangyong":true,"kxbrand":true,"fill":true,"joreyaesh":true,"uipoet":true,"wengqianshan":true,"bucaran":true,"nfd":true,"phoenix-xsy":true,"yourhoneysky":true,"gdbtek":true,"alxe.master":true,"shanegxxiao":true,"cellule":true,"jimster305":true,"ajduke":true,"phenome":true,"ignatovmsu":true,"pstoev":true,"jamescostian":true,"simplyianm":true,"schnittstabil":true,"itonyyo":true,"akiva":true,"mysticatea":true,"ruffle1986":true,"mikkoh":true,"9joneg":true,"russiansoon":true,"tunderdomb":true,"mkamayd":true,"isyara":true,"michaelnisi":true,"blakecscott":true,"lmhs":true,"mattms":true,"noyobo":true,"pensierinmusica":true,"wkaifang":true,"chicho":true,"etsit":true,"alex_japson":true,"jits":true,"ifeature":true,"nice_body":true,"ash":true,"vishwasc":true,"johnym":true,"davequick":true,"webtobesocial":true,"aitorllj93":true,"qqqppp9998":true,"jonnymaceachern":true,"incendiary":true,"alectic":true},"readme":"[![Build Status](https://travis-ci.org/isaacs/rimraf.svg?branch=master)](https://travis-ci.org/isaacs/rimraf) [![Dependency Status](https://david-dm.org/isaacs/rimraf.svg)](https://david-dm.org/isaacs/rimraf) [![devDependency Status](https://david-dm.org/isaacs/rimraf/dev-status.svg)](https://david-dm.org/isaacs/rimraf#info=devDependencies)\n\nThe [UNIX command](http://en.wikipedia.org/wiki/Rm_(Unix)) `rm -rf` for node.  \n\nInstall with `npm install rimraf`, or just drop rimraf.js somewhere.\n\n## API\n\n`rimraf(f, callback)`\n\nThe callback will be called with an error if there is one.  Certain\nerrors are handled for you:\n\n* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of\n  `opts.maxBusyTries` times before giving up, adding 100ms of wait\n  between each attempt.  The default `maxBusyTries` is 3.\n* `ENOENT` - If the file doesn't exist, rimraf will return\n  successfully, since your desired outcome is already the case.\n* `EMFILE` - Since `readdir` requires opening a file descriptor, it's\n  possible to hit `EMFILE` if too many file descriptors are in use.\n  In the sync case, there's nothing to be done for this.  But in the\n  async case, rimraf will gradually back off with timeouts up to\n  `opts.emfileWait` ms, which defaults to 1000.\n\n## rimraf.sync\n\nIt can remove stuff synchronously, too.  But that's not so good.  Use\nthe async API.  It's better.\n\n## CLI\n\nIf installed with `npm install rimraf -g` it can be used as a global\ncommand `rimraf <path> [<path> ...]` which is useful for cross platform support.\n\n## mkdirp\n\nIf you need to create a directory recursively, check out\n[mkdirp](https://github.com/substack/node-mkdirp).\n","readmeFilename":"README.md","homepage":"https://github.com/isaacs/rimraf#readme","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"license":"ISC","_attachments":{},"_etag":"\"BTK9NY6WZ8UW1BTD10A7F7CQK\""}
\ No newline at end of file
index e1aae5951410895e5d92830aed8a5af49f8cca5f..c9b4fd017ea47afd680386a4671882719bf746be 100644 (file)
@@ -1 +1 @@
-{"_id":"underscore","_rev":"440-e75350c0d8fe963d6a9a446dafaeb411","name":"underscore","description":"JavaScript's functional programming helper library.","dist-tags":{"latest":"1.8.3","stable":"1.8.3"},"versions":{"1.0.3":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.0.3","_id":"underscore@1.0.3","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.0.3.tgz","shasum":"7793a6f776dffa491d224eaf1d819824d4dc288a"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.0.4":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.0.4","_id":"underscore@1.0.4","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.0.4.tgz","shasum":"563141126b4e412f6c12c2ae2fb44ef0edd23fb2"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.0":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.0","_id":"underscore@1.1.0","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.0.tgz","shasum":"8bf44d9cc8c3a614d7940035522e1f95b682b071"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.1":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.1","_id":"underscore@1.1.1","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.1.tgz","shasum":"65dddb8cd0ee3f0094f46db72ea269d5a4f5fca4"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.2":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.2","_id":"underscore@1.1.2","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.2.tgz","shasum":"8cf4ae3900c32f3e3f06579d473a45ad768251e8"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.3":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.3","_id":"underscore@1.1.3","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.8-1","_nodeVersion":"v0.2.5","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.3.tgz","shasum":"6bd1969042a65bd3966d8924c14909f2284631dd"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.4":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore.js","version":"1.1.4","_id":"underscore@1.1.4","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.9","_nodeVersion":"v0.5.0-pre","dist":{"shasum":"9e82274902865625b3a6d4c315a38ffd80047dae","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.4.tgz"},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.1.5":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.1.5","_id":"underscore@1.1.5","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.16","_nodeVersion":"v0.4.2","directories":{},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"23601d62c75619998b2f0db24938102793336a56","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.5.tgz"},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.6":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.1.6","_id":"underscore@1.1.6","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.18","_nodeVersion":"v0.4.2","directories":{},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"6868da1bdd72d75285be0b4e50f228e70d001a2c","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.6.tgz"},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.7":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.1.7","devDependencies":{},"_id":"underscore@1.1.7","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.3","_nodeVersion":"v0.4.7","_defaultsLoaded":true,"dist":{"shasum":"40bab84bad19d230096e8d6ef628bff055d83db0","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz"},"scripts":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.2.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.0","_npmJsonOpts":{"file":"/Users/jashkenas/.npm/underscore/1.2.0/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"underscore@1.2.0","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.22","_nodeVersion":"v0.4.10","_defaultsLoaded":true,"dist":{"shasum":"b32ce32c8c118caa8031c10b54c7f65ab3b557fd","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.0.tgz"},"scripts":{},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"directories":{}},"1.2.1":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.1","_npmJsonOpts":{"file":"/Users/jashkenas/.npm/underscore/1.2.1/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"underscore@1.2.1","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.22","_nodeVersion":"v0.4.10","_defaultsLoaded":true,"dist":{"shasum":"fc5c6b0765673d92a2d4ac8b4dc0aa88702e2bd4","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz"},"scripts":{},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"directories":{}},"1.2.2":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.2","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.2.2","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.0","_defaultsLoaded":true,"dist":{"shasum":"74dd40e9face84e724eb2edae945b8aedc233ba3","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.2.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.2.3":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.3","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.2.3","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.0","_defaultsLoaded":true,"dist":{"shasum":"11b874da70f4683d7d48bba2b44be1e600d2f6cf","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.3.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.2.4":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.4","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.2.4","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"e8da6241aa06f64df2473bb2590b8c17c84c3c7e","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.4.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.0","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.0","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"253b2d79b7bb67943ced0fc744eb18267963ede8","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.0.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.1":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.1","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.1","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"6cb8aad0e77eb5dbbfb54b22bcd8697309cf9641","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.1.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.2":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.2","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.2","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"1b4e455089ab1d1d38ab6794ffe6cf08f764394a","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.2.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.3":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.3","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.3","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"47ac53683daf832bfa952e1774417da47817ae42","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.3.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.4.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.4.0","_id":"underscore@1.4.0","dist":{"shasum":"caaf510c272cbb53748a225dcfd906e5f5a5ccdd","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.4.0.tgz"},"_npmVersion":"1.1.49","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.4.1":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.4.1","_id":"underscore@1.4.1","dist":{"shasum":"f6a25ffe5d6d3ed4fe8fef37c3a9bfe689b16bb9","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.4.1.tgz"},"_npmVersion":"1.1.49","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.4.2":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.4.2","_id":"underscore@1.4.2","dist":{"shasum":"cb2aae6a7999a89fd55aaee75bce0311698cebfb","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.4.2.tgz"},"_npmVersion":"1.1.49","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.4.3":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.4.3","_id":"underscore@1.4.3","dist":{"shasum":"b3d0aaa1ee74d886ea4f2648021a4f8ad779ed1d","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.4.3.tgz"},"_npmVersion":"1.1.63","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.4.4":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.4.4","devDependencies":{"phantomjs":"0.2.2"},"scripts":{"test":"phantomjs test/vendor/runner.js test/index.html?noglobals=true"},"_id":"underscore@1.4.4","dist":{"shasum":"61a6a32010622afa07963bf325203cf12239d604","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz"},"_npmVersion":"1.1.63","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.5.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.5.0","devDependencies":{"phantomjs":"1.9.0-1"},"scripts":{"test":"phantomjs test/vendor/runner.js test/index.html?noglobals=true"},"license":"MIT","bugs":{"url":"https://github.com/documentcloud/underscore/issues"},"_id":"underscore@1.5.0","dist":{"shasum":"90c57994d1de16aab8938142e3c5b43547019362","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.5.0.tgz"},"_from":".","_npmVersion":"1.2.24","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.5.1":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.5.1","devDependencies":{"phantomjs":"1.9.0-1"},"scripts":{"test":"phantomjs test/vendor/runner.js test/index.html?noglobals=true"},"license":"MIT","bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.5.1","dist":{"shasum":"d2bde817d176ffade894ab71458e682a14b86dc9","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.5.1.tgz"},"_from":".","_npmVersion":"1.2.24","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.5.2":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.5.2","devDependencies":{"phantomjs":"1.9.0-1"},"scripts":{"test":"phantomjs test/vendor/runner.js test/index.html?noglobals=true"},"licenses":[{"type":"MIT","url":"https://raw.github.com/jashkenas/underscore/master/LICENSE"}],"files":["underscore.js","underscore-min.js","LICENSE"],"bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.5.2","dist":{"shasum":"1335c5e4f5e6d33bbb4b006ba8c86a00f556de08","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz"},"_from":".","_npmVersion":"1.3.5","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.6.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.6.0","devDependencies":{"docco":"0.6.x","phantomjs":"1.9.0-1","uglify-js":"2.4.x"},"scripts":{"test":"phantomjs test/vendor/runner.js test/index.html?noglobals=true","build":"uglifyjs underscore.js -c \"evaluate=false\" --comments \"/    .*/\" -m --source-map underscore-min.map -o underscore-min.js","doc":"docco underscore.js"},"licenses":[{"type":"MIT","url":"https://raw.github.com/jashkenas/underscore/master/LICENSE"}],"files":["underscore.js","underscore-min.js","LICENSE"],"bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.6.0","dist":{"shasum":"8b38b10cacdef63337b8b24e4ff86d45aea529a8","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz"},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.7.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.7.0","devDependencies":{"docco":"0.6.x","phantomjs":"1.9.7-1","uglify-js":"2.4.x","eslint":"0.6.x"},"scripts":{"test":"phantomjs test/vendor/runner.js test/index.html?noglobals=true && eslint underscore.js test/*.js test/vendor/runner.js","build":"uglifyjs underscore.js -c \"evaluate=false\" --comments \"/    .*/\" -m --source-map underscore-min.map -o underscore-min.js","doc":"docco underscore.js"},"licenses":[{"type":"MIT","url":"https://raw.github.com/jashkenas/underscore/master/LICENSE"}],"files":["underscore.js","underscore-min.js","LICENSE"],"gitHead":"da996e665deb0b69b257e80e3e257c04fde4191c","bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.7.0","_shasum":"6bbaf0877500d36be34ecaa584e0db9fef035209","_from":".","_npmVersion":"1.4.24","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"dist":{"shasum":"6bbaf0877500d36be34ecaa584e0db9fef035209","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz"},"directories":{}},"1.8.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.8.0","devDependencies":{"docco":"0.6.x","eslint":"0.6.x","karma":"~0.12.31","karma-qunit":"~0.1.4","qunit-cli":"~0.2.0","uglify-js":"2.4.x"},"scripts":{"test":"npm run test-node && npm run lint","lint":"eslint underscore.js test/*.js","test-node":"qunit-cli test/*.js","test-browser":"npm i karma-phantomjs-launcher && ./node_modules/karma/bin/karma start","build":"uglifyjs underscore.js -c \"evaluate=false\" --comments \"/    .*/\" -m --source-map underscore-min.map -o underscore-min.js","doc":"docco underscore.js"},"license":"MIT","files":["underscore.js","underscore-min.js","underscore-min.map","LICENSE"],"gitHead":"1aed9ec063715cd6a69fdd42b29d4ee40b3a00b2","bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.8.0","_shasum":"eb40b4e7694db3e376f2f4392fb2a2f803063f01","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"dist":{"shasum":"eb40b4e7694db3e376f2f4392fb2a2f803063f01","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.8.0.tgz"},"directories":{}},"1.8.1":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.8.1","devDependencies":{"docco":"0.6.x","eslint":"0.6.x","karma":"~0.12.31","karma-qunit":"~0.1.4","qunit-cli":"~0.2.0","uglify-js":"2.4.x"},"scripts":{"test":"npm run test-node && npm run lint","lint":"eslint underscore.js test/*.js","test-node":"qunit-cli test/*.js","test-browser":"npm i karma-phantomjs-launcher && ./node_modules/karma/bin/karma start","build":"uglifyjs underscore.js -c \"evaluate=false\" --comments \"/    .*/\" -m --source-map underscore-min.map -o underscore-min.js","doc":"docco underscore.js"},"license":"MIT","files":["underscore.js","underscore-min.js","underscore-min.map","LICENSE"],"gitHead":"834acb6dde9665b9d1c1700e3aeee7e253e9d76f","bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.8.1","_shasum":"1581e7870f5db1bb77b9ddf0c1904df6525880ae","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"dist":{"shasum":"1581e7870f5db1bb77b9ddf0c1904df6525880ae","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.8.1.tgz"},"directories":{}},"1.8.2":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.8.2","devDependencies":{"docco":"*","eslint":"0.6.x","karma":"~0.12.31","karma-qunit":"~0.1.4","qunit-cli":"~0.2.0","uglify-js":"2.4.x"},"scripts":{"test":"npm run test-node && npm run lint","lint":"eslint underscore.js test/*.js","test-node":"qunit-cli test/*.js","test-browser":"npm i karma-phantomjs-launcher && ./node_modules/karma/bin/karma start","build":"uglifyjs underscore.js -c \"evaluate=false\" --comments \"/    .*/\" -m --source-map underscore-min.map -o underscore-min.js","doc":"docco underscore.js"},"license":"MIT","files":["underscore.js","underscore-min.js","underscore-min.map","LICENSE"],"gitHead":"19db749b190a7cb5a8b7ab1aab42c0e9dc517250","bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.8.2","_shasum":"64df2eb590899de950782f3735190ba42ebf311d","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"dist":{"shasum":"64df2eb590899de950782f3735190ba42ebf311d","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.8.2.tgz"},"directories":{}},"1.8.3":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.8.3","devDependencies":{"docco":"*","eslint":"0.6.x","karma":"~0.12.31","karma-qunit":"~0.1.4","qunit-cli":"~0.2.0","uglify-js":"2.4.x"},"scripts":{"test":"npm run test-node && npm run lint","lint":"eslint underscore.js test/*.js","test-node":"qunit-cli test/*.js","test-browser":"npm i karma-phantomjs-launcher && ./node_modules/karma/bin/karma start","build":"uglifyjs underscore.js -c \"evaluate=false\" --comments \"/    .*/\" -m --source-map underscore-min.map -o underscore-min.js","doc":"docco underscore.js"},"license":"MIT","files":["underscore.js","underscore-min.js","underscore-min.map","LICENSE"],"gitHead":"e4743ab712b8ab42ad4ccb48b155034d02394e4d","bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.8.3","_shasum":"4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"dist":{"shasum":"4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz"},"directories":{}}},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"time":{"modified":"2015-04-02T15:32:54.520Z","created":"2011-01-09T19:04:10.529Z","1.0.3":"2011-12-07T15:12:18.045Z","1.0.4":"2011-12-07T15:12:18.045Z","1.1.0":"2011-12-07T15:12:18.045Z","1.1.1":"2011-12-07T15:12:18.045Z","1.1.2":"2011-12-07T15:12:18.045Z","1.1.3":"2011-12-07T15:12:18.045Z","1.1.4":"2011-12-07T15:12:18.045Z","1.1.5":"2011-12-07T15:12:18.045Z","1.1.6":"2011-12-07T15:12:18.045Z","1.1.7":"2011-12-07T15:12:18.045Z","1.2.0":"2011-12-07T15:12:18.045Z","1.2.1":"2011-12-07T15:12:18.045Z","1.2.2":"2011-11-14T20:28:47.115Z","1.2.3":"2011-12-07T15:12:18.045Z","1.2.4":"2012-01-09T17:23:14.818Z","1.3.0":"2012-01-11T16:41:38.459Z","1.3.1":"2012-01-23T22:57:36.474Z","1.3.2":"2012-04-09T18:38:14.345Z","1.3.3":"2012-04-10T14:43:48.089Z","1.4.0":"2012-09-27T22:02:55.267Z","1.4.1":"2012-10-01T17:20:22.595Z","1.4.2":"2012-10-07T03:05:02.986Z","1.4.3":"2012-12-04T18:47:36.401Z","1.4.4":"2013-01-30T02:12:42.969Z","1.5.0":"2013-07-06T18:05:58.721Z","1.5.1":"2013-07-08T08:38:10.051Z","1.5.2":"2013-09-07T13:00:28.048Z","1.6.0":"2014-02-10T21:14:55.838Z","1.7.0":"2014-08-26T22:16:25.836Z","1.8.0":"2015-02-20T00:14:01.838Z","1.8.1":"2015-02-20T03:20:05.519Z","1.8.2":"2015-02-22T14:14:32.785Z","1.8.3":"2015-04-02T15:32:54.520Z"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"users":{"mvolkmann":true,"lancehunt":true,"mikl":true,"linus":true,"vasc":true,"bat":true,"dmalam":true,"mbrevoort":true,"danielr":true,"rsimoes":true,"jharding":true,"tellnes":true,"fgribreau":true,"pid":true,"tylerstalder":true,"graemef":true,"gillesruppert":true,"travishorn":true,"m42am":true,"bencevans":true,"Scryptonite":true,"konklone":true,"bryanburgers":true,"ehershey":true,"freethenation":true,"dannydulai":true,"megadrive":true,"lupomontero":true,"cj.nichols":true,"dbrockman":true,"maxmaximov":true,"hyqhyq_3":true,"zonetti":true,"cparker15":true,"lemulot":true,"mlowe":true,"chilts":true,"shanewholloway":true,"elgs":true,"eins78":true,"moonpyk":true,"awaterma":true,"raitucarp":true,"victorquinn":true,"netroy":true,"davidgaya":true,"everywhere.js":true,"tigefa":true,"pana":true,"spekkionu":true,"mhaidarh":true,"einfallstoll":true,"simloovoo":true,"mpinteractiv":true,"darosh":true,"landau":true,"tpwk":true,"cedrickchee":true,"claveren":true,"xtopher":true,"gammasoft":true,"lomatek":true,"thomas-so":true,"oliversalzburg":true,"nosch":true,"rod":true,"vegera":true,"clintonhalpin":true,"seldo":true,"priyaranjan":true,"cilindrox":true,"cheeseen":true,"rrobayna":true,"casoetan":true,"ajduke":true,"bosspj":true,"protonss":true,"mgesmundo":true,"zeusdeux":true,"jetsetty":true,"evkline":true,"bcoe":true,"nbu":true,"tehdb":true,"ericlondon":true,"obihann":true,"wangxian":true,"lanceball":true,"funroll":true,"leventkaragol":true,"beyoung":true,"davidhalldor":true,"cwonrails":true,"cocopas":true,"imnicosuarez":true,"furkanom":true,"andydrew":true,"mrmakeit":true,"mmierswa":true,"jasonw":true,"adamk":true,"runningtalus":true,"sironfoot":true,"ezhi":true,"suomiton":true,"uris77":true,"fill":true,"ksnieck":true,"nithanaroy":true,"abalandin":true,"jasonweng":true,"zenanyoo":true,"djbrandl":true,"davidrlee":true,"dereknelson":true,"nohponex":true,"frk1705":true,"thitinun":true,"pilsy":true,"lpgray":true,"tchey":true,"arrc":true,"skinnybrit51":true,"tmypawa":true,"smashingeric":true,"tsangint":true,"dercoder":true,"slahav":true,"mhwchung":true,"moxiaohe":true,"truongpv":true,"gregoryteach":true,"goblindegook":true,"atd":true,"tommyjs7":true,"adammcarth":true,"sroccaserra":true,"yourhoneysky":true,"jashkenas":true,"eliagrady":true,"jits":true,"lukecarrier":true,"knoxpayments":true,"kingcron":true,"morewry":true,"karmadude":true,"kungkk":true,"johno":true,"henryfour":true,"augusto.altman":true,"jesus81":true,"cbowdon":true,"hrmoller":true,"megawac":true,"hkbarton":true,"minchnew":true,"richard.webb":true,"alexahdp":true,"kickthesky":true,"bkimminich":true,"maobean":true,"windhamdavid":true,"piecioshka":true,"l0n9h02n":true,"wxnet":true,"genediazjr":true,"oakley349":true,"ascheink":true,"lellansin":true,"cwhopkins":true,"dgarlitt":true,"congcong":true,"avinashkoyyana":true,"rorygreig":true,"macluvin":true,"ryanj":true,"jerryzou":true,"swak":true,"gdbtek":true,"themanspeaker":true,"stennettm":true,"richarddavenport":true,"porkbits":true,"kruemelo":true,"thorsson":true,"netzflechter":true,"taekgeun":true,"ikoala":true,"kenjisan4u":true,"indexzero":true,"eterna2":true,"mnemr":true,"excentric":true,"wangnan0610":true,"jezzalaycock":true,"devonoel":true,"greendwin":true,"midknight41":true,"caligone":true,"f124275809":true,"io2work":true,"icflorescu":true,"aitorllj93":true,"batosai":true,"stuligan":true,"infinitycbs":true,"tkhemani":true,"craigsapp":true,"sametsisartenep":true,"andreaspag":true,"yasinaydin":true,"pnevares":true,"princemaple":true,"haeck":true,"mathieuancelin":true,"pughpugh":true,"jaggedsoft":true,"j3kz":true,"sobering":true,"vchouhan":true,"wambulance":true,"mccarter":true,"goodseller":true,"ysk8":true,"zambon":true,"joeyblue":true,"jostw":true,"skyinlayer":true,"broxmgs":true,"dpkg":true,"plord":true,"seanjh":true,"chharvey":true,"vboctor":true,"jmm23":true,"rugare":true,"blackoperat":true,"alphavibe":true,"sharper":true,"keeyanajones":true,"subchen":true,"dongxu":true,"risyasin":true,"rbartoli":true,"lucasmciruzzi":true,"jakemiller":true,"huntie":true,"jmshahen":true,"itonyyo":true,"minghe":true,"chadwatson":true,"klipsil":true,"huytard":true,"orlenka":true,"makediff":true,"dac2205":true,"sbrajesh":true,"dlaume":true,"chriscalo":true,"dolymood":true,"richfoxton":true,"sanketss84":true,"johnny.young":true,"cycomachead":true,"jimkropa":true,"sonhuytran":true,"damianof":true,"subso":true,"thepanuto":true,"imchale":true,"leejefon":true,"ernie55ernie":true,"robermac":true,"sezgin":true,"cestrensem":true,"bpatel":true,"stevenlothrop":true,"karlbateman":true,"fvcproductions":true,"freshlogic":true,"kurtz1993":true},"readme":"                       __\n                      /\\ \\                                                         __\n     __  __    ___    \\_\\ \\     __   _ __   ____    ___    ___   _ __    __       /\\_\\    ____\n    /\\ \\/\\ \\ /' _ `\\  /'_  \\  /'__`\\/\\  __\\/ ,__\\  / ___\\ / __`\\/\\  __\\/'__`\\     \\/\\ \\  /',__\\\n    \\ \\ \\_\\ \\/\\ \\/\\ \\/\\ \\ \\ \\/\\  __/\\ \\ \\//\\__, `\\/\\ \\__//\\ \\ \\ \\ \\ \\//\\  __/  __  \\ \\ \\/\\__, `\\\n     \\ \\____/\\ \\_\\ \\_\\ \\___,_\\ \\____\\\\ \\_\\\\/\\____/\\ \\____\\ \\____/\\ \\_\\\\ \\____\\/\\_\\ _\\ \\ \\/\\____/\n      \\/___/  \\/_/\\/_/\\/__,_ /\\/____/ \\/_/ \\/___/  \\/____/\\/___/  \\/_/ \\/____/\\/_//\\ \\_\\ \\/___/\n                                                                                  \\ \\____/\n                                                                                   \\/___/\n\nUnderscore.js is a utility-belt library for JavaScript that provides\nsupport for the usual functional suspects (each, map, reduce, filter...)\nwithout extending any core JavaScript objects.\n\nFor Docs, License, Tests, and pre-packed downloads, see:\nhttp://underscorejs.org\n\nUnderscore is an open-sourced component of DocumentCloud:\nhttps://github.com/documentcloud\n\nMany thanks to our contributors:\nhttps://github.com/jashkenas/underscore/contributors\n","readmeFilename":"README.md","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"license":"MIT","_attachments":{},"_etag":"\"3UQP1FXOKYE5RILZ0ME3VNRI2\""}
\ No newline at end of file
+{"_id":"underscore","_rev":"476-80fca0a28d07a48575f3d21146f0e341","name":"underscore","description":"JavaScript's functional programming helper library.","dist-tags":{"latest":"1.8.3","stable":"1.8.3"},"versions":{"1.0.3":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.0.3","_id":"underscore@1.0.3","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.0.3.tgz","shasum":"7793a6f776dffa491d224eaf1d819824d4dc288a"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.0.4":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.0.4","_id":"underscore@1.0.4","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.0.4.tgz","shasum":"563141126b4e412f6c12c2ae2fb44ef0edd23fb2"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.0":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.0","_id":"underscore@1.1.0","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.0.tgz","shasum":"8bf44d9cc8c3a614d7940035522e1f95b682b071"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.1":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.1","_id":"underscore@1.1.1","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.1.tgz","shasum":"65dddb8cd0ee3f0094f46db72ea269d5a4f5fca4"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.2":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.2","_id":"underscore@1.1.2","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.2.tgz","shasum":"8cf4ae3900c32f3e3f06579d473a45ad768251e8"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.3":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.3","_id":"underscore@1.1.3","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.8-1","_nodeVersion":"v0.2.5","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.3.tgz","shasum":"6bd1969042a65bd3966d8924c14909f2284631dd"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.4":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore.js","version":"1.1.4","_id":"underscore@1.1.4","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.9","_nodeVersion":"v0.5.0-pre","dist":{"shasum":"9e82274902865625b3a6d4c315a38ffd80047dae","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.4.tgz"},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.1.5":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.1.5","_id":"underscore@1.1.5","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.16","_nodeVersion":"v0.4.2","directories":{},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"23601d62c75619998b2f0db24938102793336a56","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.5.tgz"},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.6":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.1.6","_id":"underscore@1.1.6","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.18","_nodeVersion":"v0.4.2","directories":{},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"6868da1bdd72d75285be0b4e50f228e70d001a2c","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.6.tgz"},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.7":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.1.7","devDependencies":{},"_id":"underscore@1.1.7","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.3","_nodeVersion":"v0.4.7","_defaultsLoaded":true,"dist":{"shasum":"40bab84bad19d230096e8d6ef628bff055d83db0","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz"},"scripts":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.2.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.0","_npmJsonOpts":{"file":"/Users/jashkenas/.npm/underscore/1.2.0/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"underscore@1.2.0","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.22","_nodeVersion":"v0.4.10","_defaultsLoaded":true,"dist":{"shasum":"b32ce32c8c118caa8031c10b54c7f65ab3b557fd","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.0.tgz"},"scripts":{},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"directories":{}},"1.2.1":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.1","_npmJsonOpts":{"file":"/Users/jashkenas/.npm/underscore/1.2.1/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"underscore@1.2.1","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.22","_nodeVersion":"v0.4.10","_defaultsLoaded":true,"dist":{"shasum":"fc5c6b0765673d92a2d4ac8b4dc0aa88702e2bd4","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz"},"scripts":{},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"directories":{}},"1.2.2":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.2","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.2.2","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.0","_defaultsLoaded":true,"dist":{"shasum":"74dd40e9face84e724eb2edae945b8aedc233ba3","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.2.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.2.3":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.3","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.2.3","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.0","_defaultsLoaded":true,"dist":{"shasum":"11b874da70f4683d7d48bba2b44be1e600d2f6cf","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.3.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.2.4":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.4","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.2.4","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"e8da6241aa06f64df2473bb2590b8c17c84c3c7e","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.4.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.0","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.0","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"253b2d79b7bb67943ced0fc744eb18267963ede8","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.0.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.1":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.1","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.1","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"6cb8aad0e77eb5dbbfb54b22bcd8697309cf9641","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.1.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.2":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.2","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.2","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"1b4e455089ab1d1d38ab6794ffe6cf08f764394a","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.2.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.3":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.3","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.3","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"47ac53683daf832bfa952e1774417da47817ae42","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.3.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.4.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.4.0","_id":"underscore@1.4.0","dist":{"shasum":"caaf510c272cbb53748a225dcfd906e5f5a5ccdd","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.4.0.tgz"},"_npmVersion":"1.1.49","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.4.1":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.4.1","_id":"underscore@1.4.1","dist":{"shasum":"f6a25ffe5d6d3ed4fe8fef37c3a9bfe689b16bb9","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.4.1.tgz"},"_npmVersion":"1.1.49","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.4.2":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.4.2","_id":"underscore@1.4.2","dist":{"shasum":"cb2aae6a7999a89fd55aaee75bce0311698cebfb","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.4.2.tgz"},"_npmVersion":"1.1.49","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.4.3":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.4.3","_id":"underscore@1.4.3","dist":{"shasum":"b3d0aaa1ee74d886ea4f2648021a4f8ad779ed1d","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.4.3.tgz"},"_npmVersion":"1.1.63","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.4.4":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.4.4","devDependencies":{"phantomjs":"0.2.2"},"scripts":{"test":"phantomjs test/vendor/runner.js test/index.html?noglobals=true"},"_id":"underscore@1.4.4","dist":{"shasum":"61a6a32010622afa07963bf325203cf12239d604","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz"},"_npmVersion":"1.1.63","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.5.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.5.0","devDependencies":{"phantomjs":"1.9.0-1"},"scripts":{"test":"phantomjs test/vendor/runner.js test/index.html?noglobals=true"},"license":"MIT","bugs":{"url":"https://github.com/documentcloud/underscore/issues"},"_id":"underscore@1.5.0","dist":{"shasum":"90c57994d1de16aab8938142e3c5b43547019362","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.5.0.tgz"},"_from":".","_npmVersion":"1.2.24","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.5.1":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.5.1","devDependencies":{"phantomjs":"1.9.0-1"},"scripts":{"test":"phantomjs test/vendor/runner.js test/index.html?noglobals=true"},"license":"MIT","bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.5.1","dist":{"shasum":"d2bde817d176ffade894ab71458e682a14b86dc9","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.5.1.tgz"},"_from":".","_npmVersion":"1.2.24","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.5.2":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.5.2","devDependencies":{"phantomjs":"1.9.0-1"},"scripts":{"test":"phantomjs test/vendor/runner.js test/index.html?noglobals=true"},"licenses":[{"type":"MIT","url":"https://raw.github.com/jashkenas/underscore/master/LICENSE"}],"files":["underscore.js","underscore-min.js","LICENSE"],"bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.5.2","dist":{"shasum":"1335c5e4f5e6d33bbb4b006ba8c86a00f556de08","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz"},"_from":".","_npmVersion":"1.3.5","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.6.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.6.0","devDependencies":{"docco":"0.6.x","phantomjs":"1.9.0-1","uglify-js":"2.4.x"},"scripts":{"test":"phantomjs test/vendor/runner.js test/index.html?noglobals=true","build":"uglifyjs underscore.js -c \"evaluate=false\" --comments \"/    .*/\" -m --source-map underscore-min.map -o underscore-min.js","doc":"docco underscore.js"},"licenses":[{"type":"MIT","url":"https://raw.github.com/jashkenas/underscore/master/LICENSE"}],"files":["underscore.js","underscore-min.js","LICENSE"],"bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.6.0","dist":{"shasum":"8b38b10cacdef63337b8b24e4ff86d45aea529a8","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz"},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.7.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.7.0","devDependencies":{"docco":"0.6.x","phantomjs":"1.9.7-1","uglify-js":"2.4.x","eslint":"0.6.x"},"scripts":{"test":"phantomjs test/vendor/runner.js test/index.html?noglobals=true && eslint underscore.js test/*.js test/vendor/runner.js","build":"uglifyjs underscore.js -c \"evaluate=false\" --comments \"/    .*/\" -m --source-map underscore-min.map -o underscore-min.js","doc":"docco underscore.js"},"licenses":[{"type":"MIT","url":"https://raw.github.com/jashkenas/underscore/master/LICENSE"}],"files":["underscore.js","underscore-min.js","LICENSE"],"gitHead":"da996e665deb0b69b257e80e3e257c04fde4191c","bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.7.0","_shasum":"6bbaf0877500d36be34ecaa584e0db9fef035209","_from":".","_npmVersion":"1.4.24","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"dist":{"shasum":"6bbaf0877500d36be34ecaa584e0db9fef035209","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz"},"directories":{}},"1.8.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.8.0","devDependencies":{"docco":"0.6.x","eslint":"0.6.x","karma":"~0.12.31","karma-qunit":"~0.1.4","qunit-cli":"~0.2.0","uglify-js":"2.4.x"},"scripts":{"test":"npm run test-node && npm run lint","lint":"eslint underscore.js test/*.js","test-node":"qunit-cli test/*.js","test-browser":"npm i karma-phantomjs-launcher && ./node_modules/karma/bin/karma start","build":"uglifyjs underscore.js -c \"evaluate=false\" --comments \"/    .*/\" -m --source-map underscore-min.map -o underscore-min.js","doc":"docco underscore.js"},"license":"MIT","files":["underscore.js","underscore-min.js","underscore-min.map","LICENSE"],"gitHead":"1aed9ec063715cd6a69fdd42b29d4ee40b3a00b2","bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.8.0","_shasum":"eb40b4e7694db3e376f2f4392fb2a2f803063f01","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"dist":{"shasum":"eb40b4e7694db3e376f2f4392fb2a2f803063f01","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.8.0.tgz"},"directories":{}},"1.8.1":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.8.1","devDependencies":{"docco":"0.6.x","eslint":"0.6.x","karma":"~0.12.31","karma-qunit":"~0.1.4","qunit-cli":"~0.2.0","uglify-js":"2.4.x"},"scripts":{"test":"npm run test-node && npm run lint","lint":"eslint underscore.js test/*.js","test-node":"qunit-cli test/*.js","test-browser":"npm i karma-phantomjs-launcher && ./node_modules/karma/bin/karma start","build":"uglifyjs underscore.js -c \"evaluate=false\" --comments \"/    .*/\" -m --source-map underscore-min.map -o underscore-min.js","doc":"docco underscore.js"},"license":"MIT","files":["underscore.js","underscore-min.js","underscore-min.map","LICENSE"],"gitHead":"834acb6dde9665b9d1c1700e3aeee7e253e9d76f","bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.8.1","_shasum":"1581e7870f5db1bb77b9ddf0c1904df6525880ae","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"dist":{"shasum":"1581e7870f5db1bb77b9ddf0c1904df6525880ae","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.8.1.tgz"},"directories":{}},"1.8.2":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.8.2","devDependencies":{"docco":"*","eslint":"0.6.x","karma":"~0.12.31","karma-qunit":"~0.1.4","qunit-cli":"~0.2.0","uglify-js":"2.4.x"},"scripts":{"test":"npm run test-node && npm run lint","lint":"eslint underscore.js test/*.js","test-node":"qunit-cli test/*.js","test-browser":"npm i karma-phantomjs-launcher && ./node_modules/karma/bin/karma start","build":"uglifyjs underscore.js -c \"evaluate=false\" --comments \"/    .*/\" -m --source-map underscore-min.map -o underscore-min.js","doc":"docco underscore.js"},"license":"MIT","files":["underscore.js","underscore-min.js","underscore-min.map","LICENSE"],"gitHead":"19db749b190a7cb5a8b7ab1aab42c0e9dc517250","bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.8.2","_shasum":"64df2eb590899de950782f3735190ba42ebf311d","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"dist":{"shasum":"64df2eb590899de950782f3735190ba42ebf311d","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.8.2.tgz"},"directories":{}},"1.8.3":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"main":"underscore.js","version":"1.8.3","devDependencies":{"docco":"*","eslint":"0.6.x","karma":"~0.12.31","karma-qunit":"~0.1.4","qunit-cli":"~0.2.0","uglify-js":"2.4.x"},"scripts":{"test":"npm run test-node && npm run lint","lint":"eslint underscore.js test/*.js","test-node":"qunit-cli test/*.js","test-browser":"npm i karma-phantomjs-launcher && ./node_modules/karma/bin/karma start","build":"uglifyjs underscore.js -c \"evaluate=false\" --comments \"/    .*/\" -m --source-map underscore-min.map -o underscore-min.js","doc":"docco underscore.js"},"license":"MIT","files":["underscore.js","underscore-min.js","underscore-min.map","LICENSE"],"gitHead":"e4743ab712b8ab42ad4ccb48b155034d02394e4d","bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"_id":"underscore@1.8.3","_shasum":"4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"dist":{"shasum":"4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz"},"directories":{}}},"maintainers":[{"name":"jashkenas","email":"jashkenas@gmail.com"}],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"time":{"modified":"2015-04-02T15:32:54.520Z","created":"2011-01-09T19:04:10.529Z","1.0.3":"2011-12-07T15:12:18.045Z","1.0.4":"2011-12-07T15:12:18.045Z","1.1.0":"2011-12-07T15:12:18.045Z","1.1.1":"2011-12-07T15:12:18.045Z","1.1.2":"2011-12-07T15:12:18.045Z","1.1.3":"2011-12-07T15:12:18.045Z","1.1.4":"2011-12-07T15:12:18.045Z","1.1.5":"2011-12-07T15:12:18.045Z","1.1.6":"2011-12-07T15:12:18.045Z","1.1.7":"2011-12-07T15:12:18.045Z","1.2.0":"2011-12-07T15:12:18.045Z","1.2.1":"2011-12-07T15:12:18.045Z","1.2.2":"2011-11-14T20:28:47.115Z","1.2.3":"2011-12-07T15:12:18.045Z","1.2.4":"2012-01-09T17:23:14.818Z","1.3.0":"2012-01-11T16:41:38.459Z","1.3.1":"2012-01-23T22:57:36.474Z","1.3.2":"2012-04-09T18:38:14.345Z","1.3.3":"2012-04-10T14:43:48.089Z","1.4.0":"2012-09-27T22:02:55.267Z","1.4.1":"2012-10-01T17:20:22.595Z","1.4.2":"2012-10-07T03:05:02.986Z","1.4.3":"2012-12-04T18:47:36.401Z","1.4.4":"2013-01-30T02:12:42.969Z","1.5.0":"2013-07-06T18:05:58.721Z","1.5.1":"2013-07-08T08:38:10.051Z","1.5.2":"2013-09-07T13:00:28.048Z","1.6.0":"2014-02-10T21:14:55.838Z","1.7.0":"2014-08-26T22:16:25.836Z","1.8.0":"2015-02-20T00:14:01.838Z","1.8.1":"2015-02-20T03:20:05.519Z","1.8.2":"2015-02-22T14:14:32.785Z","1.8.3":"2015-04-02T15:32:54.520Z"},"repository":{"type":"git","url":"git://github.com/jashkenas/underscore.git"},"users":{"mvolkmann":true,"lancehunt":true,"mikl":true,"linus":true,"vasc":true,"bat":true,"dmalam":true,"mbrevoort":true,"danielr":true,"rsimoes":true,"jharding":true,"tellnes":true,"fgribreau":true,"pid":true,"tylerstalder":true,"graemef":true,"gillesruppert":true,"travishorn":true,"m42am":true,"bencevans":true,"Scryptonite":true,"konklone":true,"bryanburgers":true,"ehershey":true,"freethenation":true,"dannydulai":true,"megadrive":true,"lupomontero":true,"cj.nichols":true,"dbrockman":true,"maxmaximov":true,"hyqhyq_3":true,"zonetti":true,"cparker15":true,"lemulot":true,"mlowe":true,"chilts":true,"shanewholloway":true,"elgs":true,"eins78":true,"moonpyk":true,"awaterma":true,"raitucarp":true,"victorquinn":true,"netroy":true,"davidgaya":true,"everywhere.js":true,"tigefa":true,"pana":true,"spekkionu":true,"mhaidarh":true,"einfallstoll":true,"simloovoo":true,"mpinteractiv":true,"darosh":true,"landau":true,"tpwk":true,"cedrickchee":true,"claveren":true,"xtopher":true,"gammasoft":true,"lomatek":true,"thomas-so":true,"oliversalzburg":true,"nosch":true,"rod":true,"vegera":true,"clintonhalpin":true,"seldo":true,"priyaranjan":true,"cilindrox":true,"cheeseen":true,"rrobayna":true,"casoetan":true,"ajduke":true,"bosspj":true,"protonss":true,"mgesmundo":true,"zeusdeux":true,"jetsetty":true,"evkline":true,"bcoe":true,"nbu":true,"tehdb":true,"ericlondon":true,"obihann":true,"wangxian":true,"lanceball":true,"funroll":true,"leventkaragol":true,"beyoung":true,"davidhalldor":true,"cwonrails":true,"cocopas":true,"imnicosuarez":true,"furkanom":true,"andydrew":true,"mrmakeit":true,"mmierswa":true,"jasonw":true,"adamk":true,"runningtalus":true,"sironfoot":true,"ezhi":true,"suomiton":true,"uris77":true,"fill":true,"ksnieck":true,"nithanaroy":true,"abalandin":true,"jasonweng":true,"zenanyoo":true,"djbrandl":true,"davidrlee":true,"dereknelson":true,"nohponex":true,"frk1705":true,"thitinun":true,"pilsy":true,"lpgray":true,"tchey":true,"arrc":true,"skinnybrit51":true,"tmypawa":true,"smashingeric":true,"tsangint":true,"dercoder":true,"slahav":true,"mhwchung":true,"moxiaohe":true,"truongpv":true,"gregoryteach":true,"goblindegook":true,"atd":true,"tommyjs7":true,"adammcarth":true,"sroccaserra":true,"yourhoneysky":true,"jashkenas":true,"eliagrady":true,"jits":true,"lukecarrier":true,"knoxpayments":true,"kingcron":true,"morewry":true,"karmadude":true,"kungkk":true,"johno":true,"henryfour":true,"augusto.altman":true,"jesus81":true,"cbowdon":true,"hrmoller":true,"megawac":true,"hkbarton":true,"minchnew":true,"richard.webb":true,"alexahdp":true,"kickthesky":true,"bkimminich":true,"maobean":true,"windhamdavid":true,"piecioshka":true,"l0n9h02n":true,"wxnet":true,"genediazjr":true,"oakley349":true,"ascheink":true,"lellansin":true,"cwhopkins":true,"dgarlitt":true,"congcong":true,"avinashkoyyana":true,"rorygreig":true,"macluvin":true,"ryanj":true,"jerryzou":true,"swak":true,"gdbtek":true,"themanspeaker":true,"stennettm":true,"richarddavenport":true,"porkbits":true,"kruemelo":true,"thorsson":true,"netzflechter":true,"taekgeun":true,"ikoala":true,"kenjisan4u":true,"indexzero":true,"eterna2":true,"mnemr":true,"excentric":true,"wangnan0610":true,"jezzalaycock":true,"devonoel":true,"greendwin":true,"midknight41":true,"caligone":true,"f124275809":true,"io2work":true,"icflorescu":true,"aitorllj93":true,"batosai":true,"stuligan":true,"infinitycbs":true,"tkhemani":true,"craigsapp":true,"sametsisartenep":true,"andreaspag":true,"yasinaydin":true,"pnevares":true,"princemaple":true,"haeck":true,"mathieuancelin":true,"pughpugh":true,"jaggedsoft":true,"j3kz":true,"sobering":true,"vchouhan":true,"wambulance":true,"mccarter":true,"goodseller":true,"ysk8":true,"zambon":true,"joeyblue":true,"jostw":true,"skyinlayer":true,"broxmgs":true,"dpkg":true,"plord":true,"seanjh":true,"chharvey":true,"vboctor":true,"jmm23":true,"rugare":true,"blackoperat":true,"alphavibe":true,"sharper":true,"keeyanajones":true,"subchen":true,"dongxu":true,"risyasin":true,"rbartoli":true,"lucasmciruzzi":true,"jakemiller":true,"huntie":true,"jmshahen":true,"itonyyo":true,"minghe":true,"chadwatson":true,"klipsil":true,"huytard":true,"orlenka":true,"makediff":true,"dac2205":true,"sbrajesh":true,"dlaume":true,"chriscalo":true,"dolymood":true,"richfoxton":true,"sanketss84":true,"johnny.young":true,"cycomachead":true,"jimkropa":true,"sonhuytran":true,"damianof":true,"subso":true,"thepanuto":true,"imchale":true,"leejefon":true,"ernie55ernie":true,"robermac":true,"sezgin":true,"cestrensem":true,"bpatel":true,"stevenlothrop":true,"karlbateman":true,"fvcproductions":true,"freshlogic":true,"kurtz1993":true,"jqcdq8":true,"amaynut":true,"yogapan":true,"maxime1992":true,"2dxgujun":true,"dbck":true,"warapitiya":true,"nice_body":true,"jeffb_incontact":true,"wkaifang":true,"rvanmil":true,"ericmash":true,"vishwasc":true,"pacotole":true,"kelerliao":true,"matthewbauer":true,"arnoldstoba":true,"romelperez":true,"nicwaller":true,"mamalat":true,"jozias":true,"pdedkov":true,"edwin_estrada":true,"jasonevrtt":true,"sky3r":true,"gollojs":true,"charlestati":true,"naokie":true,"kparkov":true,"linuxwizard":true,"zhoutk":true,"jkrenge":true,"alectic":true,"liushoukai":true,"xeoneux":true,"wmarra":true},"readme":"                       __\n                      /\\ \\                                                         __\n     __  __    ___    \\_\\ \\     __   _ __   ____    ___    ___   _ __    __       /\\_\\    ____\n    /\\ \\/\\ \\ /' _ `\\  /'_  \\  /'__`\\/\\  __\\/ ,__\\  / ___\\ / __`\\/\\  __\\/'__`\\     \\/\\ \\  /',__\\\n    \\ \\ \\_\\ \\/\\ \\/\\ \\/\\ \\ \\ \\/\\  __/\\ \\ \\//\\__, `\\/\\ \\__//\\ \\ \\ \\ \\ \\//\\  __/  __  \\ \\ \\/\\__, `\\\n     \\ \\____/\\ \\_\\ \\_\\ \\___,_\\ \\____\\\\ \\_\\\\/\\____/\\ \\____\\ \\____/\\ \\_\\\\ \\____\\/\\_\\ _\\ \\ \\/\\____/\n      \\/___/  \\/_/\\/_/\\/__,_ /\\/____/ \\/_/ \\/___/  \\/____/\\/___/  \\/_/ \\/____/\\/_//\\ \\_\\ \\/___/\n                                                                                  \\ \\____/\n                                                                                   \\/___/\n\nUnderscore.js is a utility-belt library for JavaScript that provides\nsupport for the usual functional suspects (each, map, reduce, filter...)\nwithout extending any core JavaScript objects.\n\nFor Docs, License, Tests, and pre-packed downloads, see:\nhttp://underscorejs.org\n\nUnderscore is an open-sourced component of DocumentCloud:\nhttps://github.com/documentcloud\n\nMany thanks to our contributors:\nhttps://github.com/jashkenas/underscore/contributors\n","readmeFilename":"README.md","homepage":"http://underscorejs.org","keywords":["util","functional","server","client","browser"],"bugs":{"url":"https://github.com/jashkenas/underscore/issues"},"license":"MIT","_attachments":{},"_etag":"\"8EZATH1ENKRBXI2Y7UR9S2LDT\""}
\ No newline at end of file
index d35811d469487f907aea5385c26271095a3dd96b..df49a8b077af3abf10fdc36ff17a1fb995066da4 100644 (file)
@@ -1 +1 @@
-{"name":"rimraf","version":"2.2.8","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.2.8","_shasum":"e439be2aaee327321952730f99a8929e4fc50582","_from":"rimraf@>=2.2.2 <2.3.0","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"e439be2aaee327321952730f99a8929e4fc50582","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"}
\ No newline at end of file
+{"name":"rimraf","version":"2.2.8","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.2.8","_shasum":"e439be2aaee327321952730f99a8929e4fc50582","_from":"rimraf@>=2.2.2 <2.3.0","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"e439be2aaee327321952730f99a8929e4fc50582","tarball":"http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz","readme":"ERROR: No README data found!"}
\ No newline at end of file
index 9d1106ddbdd96f2d410652c6a9fcd6bc10d8c1a0..1aeb08e8be55bd2c1bd8870308f34ad72d3fb2d5 100644 (file)
@@ -1 +1 @@
-{"name":"space-pen","version":"5.1.1","description":"Write markup on the final frontier","main":"./lib/space-pen.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test","start":"grunt start"},"licenses":[{"type":"MIT","url":"http://github.com/atom/space-pen/raw/master/LICENSE"}],"repository":{"type":"git","url":"https://github.com/atom/space-pen.git"},"bugs":{"url":"https://github.com/atom/space-pen/issues"},"devDependencies":{"express":"~3.4.0","coffee-script":"~1.6.3","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-coffeelint":"0.0.6","browserify":"~2.34.1","jasmine-focused":"~0.15.0","grunt-shell":"~0.5.0","coffeeify":"~0.5.1","grunt-contrib-connect":"~0.5.0","grunt-atomdoc":"^1.0.0"},"dependencies":{"grim":"^1.0.0","jquery":"^2.1.3","underscore-plus":"1.x"},"gitHead":"c5694286b4faaf07eb1a7fbd03e6ebb8c34fc554","homepage":"https://github.com/atom/space-pen","_id":"space-pen@5.1.1","_shasum":"f7cc61ed3e371718aa05d54608ca7784deb7bc89","_from":"space-pen@>=5.1.1 <6.0.0","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"f7cc61ed3e371718aa05d54608ca7784deb7bc89","tarball":"http://registry.npmjs.org/space-pen/-/space-pen-5.1.1.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/space-pen/-/space-pen-5.1.1.tgz"}
\ No newline at end of file
+{"name":"space-pen","version":"5.1.1","description":"Write markup on the final frontier","main":"./lib/space-pen.js","scripts":{"prepublish":"grunt prepublish","test":"grunt test","start":"grunt start"},"licenses":[{"type":"MIT","url":"http://github.com/atom/space-pen/raw/master/LICENSE"}],"repository":{"type":"git","url":"git+https://github.com/atom/space-pen.git"},"bugs":{"url":"https://github.com/atom/space-pen/issues"},"devDependencies":{"express":"~3.4.0","coffee-script":"~1.6.3","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-coffeelint":"0.0.6","browserify":"~2.34.1","jasmine-focused":"~0.15.0","grunt-shell":"~0.5.0","coffeeify":"~0.5.1","grunt-contrib-connect":"~0.5.0","grunt-atomdoc":"^1.0.0"},"dependencies":{"grim":"^1.0.0","jquery":"^2.1.3","underscore-plus":"1.x"},"gitHead":"c5694286b4faaf07eb1a7fbd03e6ebb8c34fc554","homepage":"https://github.com/atom/space-pen","_id":"space-pen@5.1.1","_shasum":"f7cc61ed3e371718aa05d54608ca7784deb7bc89","_from":"space-pen@>=5.1.1 <6.0.0","_npmVersion":"1.4.28","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"benogle","email":"ogle.ben@gmail.com"}],"dist":{"shasum":"f7cc61ed3e371718aa05d54608ca7784deb7bc89","tarball":"http://registry.npmjs.org/space-pen/-/space-pen-5.1.1.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/space-pen/-/space-pen-5.1.1.tgz","readme":"ERROR: No README data found!"}
\ No newline at end of file
index d53fdc0f8e6959b7f804e03a1bad45dadb7f74b5..a3100cee3b169d8d2df5714e097bbf76406b602e 100644 (file)
@@ -1 +1 @@
-{"name":"underscore-plus","version":"1.6.6","description":"Underscore plus additional utilities","licenses":[{"type":"MIT","url":"http://github.com/atom/underscore-plus/raw/master/LICENSE.md"}],"main":"./lib/underscore-plus.js","scripts":{"prepublish":"grunt clean coffee lint","test":"grunt test"},"repository":{"type":"git","url":"https://github.com/atom/underscore-plus.git"},"bugs":{"url":"https://github.com/atom/underscore-plus/issues"},"homepage":"http://atom.github.io/underscore-plus","keywords":["underscore"],"dependencies":{"underscore":"~1.6.0"},"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.5.0","rimraf":"~2.1.4"},"gitHead":"2046d1562896761e3c38b7a647ac30b87b46ea20","_id":"underscore-plus@1.6.6","_shasum":"65ecde1bdc441a35d89e650fd70dcf13ae439a7d","_from":"underscore-plus@>=1.6.6 <2.0.0","_npmVersion":"2.1.8","_nodeVersion":"0.10.33","_npmUser":{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"65ecde1bdc441a35d89e650fd70dcf13ae439a7d","tarball":"http://registry.npmjs.org/underscore-plus/-/underscore-plus-1.6.6.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/underscore-plus/-/underscore-plus-1.6.6.tgz","readme":"ERROR: No README data found!"}
\ No newline at end of file
+{"name":"underscore-plus","version":"1.6.6","description":"Underscore plus additional utilities","licenses":[{"type":"MIT","url":"http://github.com/atom/underscore-plus/raw/master/LICENSE.md"}],"main":"./lib/underscore-plus.js","scripts":{"prepublish":"grunt clean coffee lint","test":"grunt test"},"repository":{"type":"git","url":"git+https://github.com/atom/underscore-plus.git"},"bugs":{"url":"https://github.com/atom/underscore-plus/issues"},"homepage":"http://atom.github.io/underscore-plus","keywords":["underscore"],"dependencies":{"underscore":"~1.6.0"},"devDependencies":{"jasmine-focused":"1.x","grunt-contrib-coffee":"~0.9.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","temp":"~0.5.0","rimraf":"~2.1.4"},"gitHead":"2046d1562896761e3c38b7a647ac30b87b46ea20","_id":"underscore-plus@1.6.6","_shasum":"65ecde1bdc441a35d89e650fd70dcf13ae439a7d","_from":"underscore-plus@>=1.0.0 <2.0.0","_npmVersion":"2.1.8","_nodeVersion":"0.10.33","_npmUser":{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},{"name":"mcolyer","email":"matt@colyer.name"},{"name":"benogle","email":"ogle.ben@gmail.com"},{"name":"nathansobo","email":"nathansobo@gmail.com"},{"name":"maxbrunsfeld","email":"maxbrunsfeld@gmail.com"}],"dist":{"shasum":"65ecde1bdc441a35d89e650fd70dcf13ae439a7d","tarball":"http://registry.npmjs.org/underscore-plus/-/underscore-plus-1.6.6.tgz"},"directories":{},"_resolved":"https://registry.npmjs.org/underscore-plus/-/underscore-plus-1.6.6.tgz","readme":"ERROR: No README data found!"}
\ No newline at end of file
diff --git a/atom/.apm/vim-mode-visual-block/0.2.13/package.tgz b/atom/.apm/vim-mode-visual-block/0.2.13/package.tgz
new file mode 100644 (file)
index 0000000..53929db
Binary files /dev/null and b/atom/.apm/vim-mode-visual-block/0.2.13/package.tgz differ
diff --git a/atom/.apm/vim-mode-visual-block/0.2.13/package/package.json b/atom/.apm/vim-mode-visual-block/0.2.13/package/package.json
new file mode 100644 (file)
index 0000000..44342cf
--- /dev/null
@@ -0,0 +1 @@
+{"name":"vim-mode-visual-block","main":"./lib/main","version":"0.2.13","description":"Add visual-blockwise feature to vim-mode","repository":{"type":"git","url":"git+https://github.com/t9md/atom-vim-mode-visual-block.git"},"license":"MIT","engines":{"atom":">=0.174.0 <2.0.0"},"consumedServices":{"vim-mode":{"versions":{"^0.1.0":"consumeVimMode"}}},"dependencies":{"underscore-plus":"^1.6.6"},"readme":"# vim-mode-visual-block\n\nAdd visual-block operation to [vim-mode](https://atom.io/packages/vim-mode).\n\n![gif](https://raw.githubusercontent.com/t9md/t9md/375d45f661b76cd8fd874dbcacf93602e7d75c99/img/vim-mode-visual-blockwise.gif)\n\n# What's this?\n\n**Temporarily** workaround, until vim-mode support visual block mode natively.\nI'm not intended to complete solution.\n\n# Keymap\n\nFrom version 0.2.5, starting to provide [default keymap](https://github.com/t9md/atom-vim-mode-visual-block/blob/master/keymaps/vim-mode-visual-block.cson).  \n\nFor older version user\n* Remove explicit keymap from `keymap.cson` and use default keymap.\n\n# Limitation\n- Count not supported.\n- Currently yank and paste for block range is not supported.\n- No support for non-contiguous multi selection.\n\n# Todo\n* [x] Precise state check when escape from visual-block.\n* [x] Support other insert-mode initiator like `a`, `i`, `C`.\n* [ ] Yank and paste support.\n* [ ] Concatenate undo transaction?.\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/t9md/atom-vim-mode-visual-block/issues"},"homepage":"https://github.com/t9md/atom-vim-mode-visual-block#readme","_id":"vim-mode-visual-block@0.2.13","_shasum":"5f4d8288c01082f685c4dc4bb039241e61d624e6","_resolved":"file:../d-115828-94488-fbcgjf/package.tgz","_from":"../d-115828-94488-fbcgjf/package.tgz"}
\ No newline at end of file
diff --git a/atom/.apm/vim-mode-visual-block/0.2.8/package.tgz b/atom/.apm/vim-mode-visual-block/0.2.8/package.tgz
new file mode 100644 (file)
index 0000000..77ded2c
Binary files /dev/null and b/atom/.apm/vim-mode-visual-block/0.2.8/package.tgz differ
diff --git a/atom/.apm/vim-mode-visual-block/0.2.8/package/package.json b/atom/.apm/vim-mode-visual-block/0.2.8/package/package.json
new file mode 100644 (file)
index 0000000..25a4661
--- /dev/null
@@ -0,0 +1 @@
+{"name":"vim-mode-visual-block","main":"./lib/main","version":"0.2.8","description":"Add visual-blockwise feature to vim-mode","repository":{"type":"git","url":"https://github.com/t9md/atom-vim-mode-visual-block"},"license":"MIT","engines":{"atom":">=0.174.0 <2.0.0"},"activationCommands":{"atom-text-editor":["vim-mode-visual-block:o","vim-mode-visual-block:j","vim-mode-visual-block:k","vim-mode-visual-block:D","vim-mode-visual-block:C","vim-mode-visual-block:I","vim-mode-visual-block:A","vim-mode-visual-block:escape","vim-mode-visual-block:escape","vim-mode-visual-block:escape","vim-mode-visual-block:ctrl-v"]},"consumedServices":{"vim-mode":{"versions":{"^0.1.0":"consumeVimMode"}}},"dependencies":{"underscore-plus":"^1.6.6"},"readme":"# vim-mode-visual-block\n\nAdd visual-block operation to [vim-mode](https://atom.io/packages/vim-mode).\n\n![gif](https://raw.githubusercontent.com/t9md/t9md/375d45f661b76cd8fd874dbcacf93602e7d75c99/img/vim-mode-visual-blockwise.gif)\n\n# What's this?\n\n**Temporarily** workaround, until vim-mode support visual block mode natively.\nI'm not intended to complete solution.\n\n# Keymap\n\nFrom version 0.2.5, starting to provide [default keymap](https://github.com/t9md/atom-vim-mode-visual-block/blob/master/keymaps/vim-mode-visual-block.cson).  \n\nFor older version user\n* Remove explicit keymap from `keymap.cson` and use default keymap.\n\n# Limitation\n- Currently yank and paste for block range is not suppoted.\n- No support for non-contiguous multi selection.\n\n# Todo\n* [x] Precise state check when escape from visual-block.\n* [x] Support other insert-mode initiator like `a`, `i`, `C`.\n* [ ] Yank and paste support.\n* [ ] Concatenate undo transaction?.\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/t9md/atom-vim-mode-visual-block/issues"},"homepage":"https://github.com/t9md/atom-vim-mode-visual-block","_id":"vim-mode-visual-block@0.2.8","_shasum":"095066453dd86560c13e31ff2a62ddf4f211f346","_resolved":"file:../d-115615-5768-aautdw/package.tgz","_from":"../d-115615-5768-aautdw/package.tgz"}
\ No newline at end of file
diff --git a/atom/.apm/vim-mode/0.55.0/package.tgz b/atom/.apm/vim-mode/0.55.0/package.tgz
new file mode 100644 (file)
index 0000000..c3d9548
Binary files /dev/null and b/atom/.apm/vim-mode/0.55.0/package.tgz differ
diff --git a/atom/.apm/vim-mode/0.55.0/package/package.json b/atom/.apm/vim-mode/0.55.0/package/package.json
new file mode 100644 (file)
index 0000000..4452657
--- /dev/null
@@ -0,0 +1 @@
+{"name":"vim-mode","main":"./lib/vim-mode","version":"0.55.0","description":"Add vim modal control","license":"MIT","private":true,"repository":{"type":"git","url":"https://github.com/atom/vim-mode"},"engines":{"atom":">0.151.0"},"dependencies":{"underscore-plus":"1.x","event-kit":"^0.7.2"},"consumedServices":{"status-bar":{"versions":{"^1.0.0":"consumeStatusBar"}}},"providedServices":{"vim-mode":{"description":"","versions":{"0.1.0":"provideVimMode"}}},"devDependencies":{"coffeelint":"^1.10.1"},"readme":"## Vim Mode package [![Build Status](https://travis-ci.org/atom/vim-mode.svg?branch=master)](https://travis-ci.org/atom/vim-mode)\n\nProvides vim modal control for Atom, ideally blending the best of vim\nand Atom.\n\n### Installing\n\nUse the Atom package manager, which can be found in the Settings view or\nrun `apm install vim-mode` from the command line.\n\n### Current Status\n\nSizable portions of Vim's command mode work as you'd expect, including\nmany complex combinations. Even so, this package is far from finished (Vim\nwasn't built in a day).\n\nIf you want the vim ex line (for `:w`, `:s`, etc.), you can try [ex-mode](https://atom.io/packages/ex-mode)\nwhich works in conjuction with this plugin.\n\nCurrently, vim-mode requires soft line wraps to be disabled, and has some issues\nwith international keyboard layouts.\n\nIf there's a feature of Vim you're missing, it might just be that you use it\nmore often than other developers. Adding a feature can be quick and easy. Check\nout the [closed pull requests](https://github.com/atom/vim-mode/pulls?direction=desc&page=1&sort=created&state=closed)\nto see examples of community contributions. We're looking forward to yours, too.\n\n### Documentation\n\n* [Overview](https://github.com/atom/vim-mode/blob/master/docs/overview.md)\n* [Motions](https://github.com/atom/vim-mode/blob/master/docs/motions.md)\n* [Operators](https://github.com/atom/vim-mode/blob/master/docs/operators.md)\n* [Windows](https://github.com/atom/vim-mode/blob/master/docs/windows.md)\n* [Scrolling](https://github.com/atom/vim-mode/blob/master/docs/scrolling.md)\n\n### Development\n\n* Create a branch with your feature/fix.\n* Add a spec (take inspiration from the ones that are already there).\n* If you're adding a command be sure to update the appropriate file in\n  `docs/`\n* Create a PR.\n\nWhen in doubt, open a PR earlier rather than later so that you can receive\nfeedback from the community. We want to get your fix or feature included as much\nas you do.\n\nSee [the contribution guide](https://github.com/atom/vim-mode/blob/master/CONTRIBUTING.md).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/atom/vim-mode/issues"},"homepage":"https://github.com/atom/vim-mode","_id":"vim-mode@0.55.0","_shasum":"c1f5f86a7f1c5c48c862adf49eee5af4bb0b4d6e","_resolved":"file:../d-115615-5761-q3sjdc/package.tgz","_from":"../d-115615-5761-q3sjdc/package.tgz"}
\ No newline at end of file
diff --git a/atom/.apm/vim-mode/0.60.0/package.tgz b/atom/.apm/vim-mode/0.60.0/package.tgz
new file mode 100644 (file)
index 0000000..243859d
Binary files /dev/null and b/atom/.apm/vim-mode/0.60.0/package.tgz differ
diff --git a/atom/.apm/vim-mode/0.60.0/package/package.json b/atom/.apm/vim-mode/0.60.0/package/package.json
new file mode 100644 (file)
index 0000000..f5530a2
--- /dev/null
@@ -0,0 +1 @@
+{"name":"vim-mode","main":"./lib/vim-mode","version":"0.60.0","description":"Add vim modal control","license":"MIT","private":true,"repository":{"type":"git","url":"git+https://github.com/atom/vim-mode.git"},"engines":{"atom":">0.151.0"},"dependencies":{"event-kit":"^0.7.2","grim":"^1.4.1","underscore-plus":"1.x"},"consumedServices":{"status-bar":{"versions":{"^1.0.0":"consumeStatusBar"}}},"providedServices":{"vim-mode":{"description":"","versions":{"0.1.0":"provideVimMode"}}},"devDependencies":{"coffeelint":"^1.10.1"},"readme":"## Vim Mode package [![Build Status](https://travis-ci.org/atom/vim-mode.svg?branch=master)](https://travis-ci.org/atom/vim-mode)\n\nProvides vim modal control for Atom, ideally blending the best of vim\nand Atom.\n\n### Installing\n\nUse the Atom package manager, which can be found in the Settings view or\nrun `apm install vim-mode` from the command line.\n\n### Current Status\n\nSizable portions of Vim's normal mode work as you'd expect, including\nmany complex combinations. Even so, this package is far from finished (Vim\nwasn't built in a day).\n\nIf you want the vim ex line (for `:w`, `:s`, etc.), you can try [ex-mode](https://atom.io/packages/ex-mode)\nwhich works in conjuction with this plugin.\n\nCurrently, vim-mode has some issues with international keyboard layouts.\n\nIf there's a feature of Vim you're missing, it might just be that you use it\nmore often than other developers. Adding a feature can be quick and easy. Check\nout the [closed pull requests](https://github.com/atom/vim-mode/pulls?direction=desc&page=1&sort=created&state=closed)\nto see examples of community contributions. We're looking forward to yours, too.\n\n### Documentation\n\n* [Overview](https://github.com/atom/vim-mode/blob/master/docs/overview.md)\n* [Motions and Text Objects](https://github.com/atom/vim-mode/blob/master/docs/motions.md)\n* [Operators](https://github.com/atom/vim-mode/blob/master/docs/operators.md)\n* [Windows](https://github.com/atom/vim-mode/blob/master/docs/windows.md)\n* [Scrolling](https://github.com/atom/vim-mode/blob/master/docs/scrolling.md)\n\n### Development\n\n* Create a branch with your feature/fix.\n* Add a spec (take inspiration from the ones that are already there).\n* If you're adding a command be sure to update the appropriate file in\n  `docs/`\n* Create a PR.\n\nWhen in doubt, open a PR earlier rather than later so that you can receive\nfeedback from the community. We want to get your fix or feature included as much\nas you do.\n\nSee [the contribution guide](https://github.com/atom/vim-mode/blob/master/CONTRIBUTING.md).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/atom/vim-mode/issues"},"homepage":"https://github.com/atom/vim-mode#readme","_id":"vim-mode@0.60.0","_shasum":"c8a64fe60b40b71148f78df595cd813faef8d1f4","_resolved":"file:../d-115828-94481-cfhog7/package.tgz","_from":"../d-115828-94481-cfhog7/package.tgz"}
\ No newline at end of file
diff --git a/atom/.apm/vim-surround/0.8.0/package.tgz b/atom/.apm/vim-surround/0.8.0/package.tgz
new file mode 100644 (file)
index 0000000..05f1846
Binary files /dev/null and b/atom/.apm/vim-surround/0.8.0/package.tgz differ
diff --git a/atom/.apm/vim-surround/0.8.0/package/package.json b/atom/.apm/vim-surround/0.8.0/package/package.json
new file mode 100644 (file)
index 0000000..9319b00
--- /dev/null
@@ -0,0 +1 @@
+{"name":"vim-surround","main":"./lib/vim-surround","version":"0.8.0","description":"vim-surround for Atom!","repository":{"type":"git","url":"git+https://github.com/gepoch/vim-surround.git"},"license":"MIT","keywords":["pair","parentheses","quotes","surround","vim"],"engines":{"atom":">0.50.0"},"dependencies":{},"consumedServices":{},"readme":"# Vim Surround for Atom [![Build Status](https://travis-ci.org/gepoch/vim-surround.svg?branch=master)](https://travis-ci.org/gepoch/vim-surround)\n\nSurround is an implementation of vim-surround for the [atom](http://atom.io)\neditor, creating a vim-surround with the power of Atom!\n\nYou should definitely have [vim-mode](https://atom.io/packages/vim-mode) for\nthis package to function properly, of course.\n\nInspiration from and kudos to the wonderful [vim-surround for\nvim](https://github.com/tpope/vim-surround)\n\nSee vim-surround on [github](https://github.com/gepoch/vim-surround) or\n[atom.io](https://atom.io/packages/vim-surround).\n\n## News\n\n* This package supports visual mode's `s )` set of commands for a configurable\n  set of pairs.\n\n* Next on the roadmap are pair deletions with `d )` and friends.\n\n* New in 0.4: Multiple cursors are now supported, and conveniently work just\n  like you think they do.\n\n* New in 0.5: Stable configuration changes and configurable surround key!\n\n* New in 0.7: Change surround and delete surround added.\n\n* New in 0.8: Tentative support for\n  [vim-mode-next](https://atom.io/packages/vim-mode-next). See\n  [#28](https://github.com/gepoch/vim-surround/issues/28).\n\n### Muscle Memory Compatability Note\n\nvim-surround uses a lowercase `s` instead of `S` for surround commands! This is\nconfigurable in the package settings, if you would like to set it to the\noriginal keybinding.\n\n## How to use Surround\n\n### Surrounding\n\nFor double quotes, highlight the string in visual mode and enter `s \"`.\n\n```\nHello world -> \"Hello world\"\n```\n\nFor parentheses there are two options. `s )` will surround as normal. `s (`\nwill pad with a space. All asymmetrical pairs have the secondary space-padded\nform.\n\nFor example:\n\n`s )`\n\n```\nHello world -> (Hello world)\n```\n\n`s (`\n\n```\nHello world -> ( Hello world )\n```\n\n### Changing Surrounding Pairs\n\nSuppose I want to make double quotes into single quotes. To do this, I should\nput my cursor inside the double quotes in question and enter `c s \" '`\n\n```\n\"Hello world\" -> 'Hello world'\n```\n\n### Deleting Surrounding Pairs\n\nTo delete the single quotes, place your cursor inside of them and enter `d s '`\n\n```\n'Hello world' -> Hello world\n```\n### Configuration\n\nCurrently, the following pairs work out of the box!:\n\n- ()\n- []\n- {}\n- \"\"\n- ''\n\nYou can add to the available pairs in atom's settings, and the commands will\nbe dynamically added to your keybindings.\n\nFor example if I'm working on Jinja templates, and I want to add the ability to\nsurround using `{%` and `%}` I would add this in my settings:\n\n```\n(), [], {}, \"\", '', {%%}\n```\n\nThen:\n\n`s % }`\n\n```\nHello world -> {%Hello world%}\n```\n\n`s { %`\n\n```\nHello world -> {% Hello world %}\n```\n\n### TODO\n\n- [x] Implement deleting surrounding pairs with `d s`\n- [x] Implement changing surrounding pairs with `c s`\n- [ ] Intelligent tag surrounding/deleting/replacing with `s <q>` and friends.\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/gepoch/vim-surround/issues"},"homepage":"https://github.com/gepoch/vim-surround#readme","_id":"vim-surround@0.8.0","_shasum":"13e7554fb6a90ba6178fb2b8bddb87ca45e3d0d3","_resolved":"file:../d-115828-94497-mmttc8/package.tgz","_from":"../d-115828-94497-mmttc8/package.tgz"}
\ No newline at end of file
diff --git a/atom/packages/api-notation/.npmignore b/atom/packages/api-notation/.npmignore
new file mode 100644 (file)
index 0000000..ade14b9
--- /dev/null
@@ -0,0 +1,3 @@
+.DS_Store
+npm-debug.log
+node_modules
diff --git a/atom/packages/api-notation/CHANGELOG.md b/atom/packages/api-notation/CHANGELOG.md
new file mode 100644 (file)
index 0000000..c3d858c
--- /dev/null
@@ -0,0 +1,3 @@
+## 0.1.0 - First Release
+* Every feature added
+* Every bug fixed
diff --git a/atom/packages/api-notation/LICENSE.md b/atom/packages/api-notation/LICENSE.md
new file mode 100644 (file)
index 0000000..40a0eeb
--- /dev/null
@@ -0,0 +1,20 @@
+Copyright (c) 2015 <Your name here>
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/atom/packages/api-notation/README.md b/atom/packages/api-notation/README.md
new file mode 100644 (file)
index 0000000..45d61c0
--- /dev/null
@@ -0,0 +1,70 @@
+# API Notation Syntax for Atom
+
+This is a grammar for api notation, a simple notation I've been using for
+annotating module APIs in specs and other documents.
+
+## Installing
+
+### From Command Line
+
+`apm install api-notation`
+
+### From GUI
+
+#### Open the Package Manager from Palette Manager
+
+1. Press `⌘⇧P` on OSX or `⌃⇧P` on Windows/Linux to open the palette manager
+2. Look for `Install Packages and Themes`
+
+#### Open the Package Manager from Preferences
+
+1. Go to `Atom -> Preferences` menu
+2. Go to `Install`
+
+#### Install it
+
+1. Search for `api-notation` in the search bar
+2. Click Install
+
+## Usage
+
+Open a `.api` file, or set it as your syntax.
+
+## API Notation Reference
+
+The most recent reference as of now is in this [gist][api-reference], so
+check that to be sure. But here's a reproduction of the notation.
+
+```
+NameOfClass.WithPossibleNamespace
+   + class property
+   - instance property
+  ~> listened events (socket)
+  +> listened events (class/module)
+  -> listened events (instance)
+  <~ dispatched events (socket)
+  <+ dispatched events(class/module)
+  <- dispatched events (instance)
+  :: class method
+   # instance method
+
+Other symbols
+  => returns
+->() callback return
+[xx] optional
+<xx> data type
+
+Recommended order: class first, then sockets, then instance. Internally:
+Properties, events, methods.
+
+// Anything after two forward slashes is a comment
+```
+
+## How does it look like?
+
+Like this.
+
+![Like this.][api-example]
+
+[api-reference]: https://gist.github.com/benbeltran/4694c46fcec131468e34
+[api-example]: https://i.imgur.com/5WXuf4u.png
diff --git a/atom/packages/api-notation/example-syntax.api b/atom/packages/api-notation/example-syntax.api
new file mode 100644 (file)
index 0000000..8c52870
--- /dev/null
@@ -0,0 +1,19 @@
+HypotheticalModule <IModuleInterface>
+  +staticProperty <String>
+  +anotherStaticProperty <Boolean>
+  ::toggleAnotherStaticProperty()
+  ::setStaticProperty(newValue <String>)
+  -instanceProperty <Number>
+  -anotherInstanceProperty <String>
+  #instanceMethodSync([optionalParameter]<Boolean>) => resultOfCall <String>
+  #instanceMethodAsync(someValue <Number>, [callback] <Function>) ->(error <String|null>, result <Number|null>)
+
+
+// Comment
+EventHypotheticalClass
+  +>AnotherClass<+staticEventToListen(eventData <PredefinedObject>) // More Comments
+  <+staticEventDispatched(someData <SomeData>)
+  ~>listenedSocketEvent(eventData <SomeObject>)
+  <~dispatchedSocketEvent(eventData <BlaBla>)
+  ->AnotherClass<-instanceEventToListen(eventData <Object>)
+  <-instanceEventDispatched(specificDataType <DefinedObject>)
diff --git a/atom/packages/api-notation/grammars/api-notation.cson b/atom/packages/api-notation/grammars/api-notation.cson
new file mode 100644 (file)
index 0000000..8a2b4de
--- /dev/null
@@ -0,0 +1,127 @@
+'scopeName': 'source.api-notation'
+'name': 'API Notation'
+'fileTypes': [
+  'api'
+]
+'patterns': [
+  {
+    'begin': '^([a-zA-Z0-9_.]+)'
+    'end': '\n'
+    'name': 'constant.language'
+    'patterns': [
+      {
+        'include': '#dataTypes'
+      }
+      {
+        'include': '#comment'
+      }
+    ]
+  }
+  {
+    'begin': '[ \t]*',
+    'end': '\n'
+    'patterns': [
+      {
+        'include': '#apiMember'
+      }
+      {
+        'include': '#parameterList'
+      }
+      {
+        'include': '#dataTypes'
+      }
+      {
+        'include': '#operators'
+      }
+      {
+        'include': '#parameters'
+      }
+      {
+        'include': '#comment'
+      }
+    ]
+  }
+  {
+    'begin': '^.',
+    'end': '\n'
+    'patterns': [
+      {
+        'include': '#comment'
+      }
+    ]
+  },
+]
+'repository':
+  'dataTypes': {
+    'begin': '\\<'
+    'end': '\\>'
+    'name': 'keyword.operator'
+    'patterns': [
+      {
+        'include': '#dataType'
+      }
+      {
+        'include': '#separators'
+      }
+    ]
+  }
+  'parameterList': {
+    'begin': '\\('
+    'end': '\\)'
+    'name': 'keyword.operator'
+    'patterns': [
+      {
+        'include': '#parameters'
+      }
+      {
+        'include': '#optionalParameters'
+      }
+      {
+        'include': '#dataTypes'
+      }
+      {
+        'include': '#separators'
+      }
+    ]
+  }
+  'dataType': {
+    'match': '[a-zA-Z0-9_.]+'
+    'name': 'support.function'
+  }
+  'parameters': {
+    'match': '[a-zA-Z0-9_.]+'
+    'name': 'string.other'
+  }
+  'optionalParameters': {
+    'begin': '\\['
+    'end': '\\]'
+    'patterns': [
+      {
+        'include': '#optionalParameter'
+      }
+    ]
+  }
+  'optionalParameter': {
+    'match': '[a-zA-Z0-9_.]+'
+    'name': 'meta.separator'
+  }
+  'separators': {
+    'match': '\\||,'
+    'name': 'comment.line'
+  }
+  'apiMember': {
+    'match': '((?:<\\+)|(?:<\\~)|(?:<\\-)|(?:\\+>)|(?:\\~>)|(?:\\->)|\\-|\\+|(?:::)|#)([a-zA-z0-9_]+)'
+    'captures':
+      '1':
+        'name': 'keyword.control'
+      '2':
+        'name': 'variable.language'
+  }
+  'comment': {
+    'match': '[ \t]*//[ \t]*.*',
+    'name': 'comment.line'
+  }
+  'operators': {
+    'match': '(?:\\->)|(?:\\=>)'
+    'name': 'keyword.control'
+  }
diff --git a/atom/packages/api-notation/package.json b/atom/packages/api-notation/package.json
new file mode 100644 (file)
index 0000000..480422f
--- /dev/null
@@ -0,0 +1,38 @@
+{
+  "name": "api-notation",
+  "version": "1.0.2",
+  "description": "Syntax for API Notation, a simple shorthand to write library APIs",
+  "keywords": [
+    "syntax",
+    "theme",
+    "api"
+  ],
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/rbdr/api-notation-atom.git"
+  },
+  "license": "MIT",
+  "engines": {
+    "atom": ">=1.0.0 <2.0.0"
+  },
+  "readme": "# API Notation Syntax for Atom\n\nThis is a grammar for api notation, a simple notation I've been using for\nannotating module APIs in specs and other documents.\n\n## Installing\n\n### From Command Line\n\n`apm install api-notation`\n\n### From GUI\n\n#### Open the Package Manager from Palette Manager\n\n1. Press `⌘⇧P` on OSX or `⌃⇧P` on Windows/Linux to open the palette manager\n2. Look for `Install Packages and Themes`\n\n#### Open the Package Manager from Preferences\n\n1. Go to `Atom -> Preferences` menu\n2. Go to `Install`\n\n#### Install it\n\n1. Search for `api-notation` in the search bar\n2. Click Install\n\n## Usage\n\nOpen a `.api` file, or set it as your syntax.\n\n## API Notation Reference\n\nThe most recent reference as of now is in this [gist][api-reference], so\ncheck that to be sure. But here's a reproduction of the notation.\n\n```\nNameOfClass.WithPossibleNamespace\n   + class property\n   - instance property\n  ~> listened events (socket)\n  +> listened events (class/module)\n  -> listened events (instance)\n  <~ dispatched events (socket)\n  <+ dispatched events(class/module)\n  <- dispatched events (instance)\n  :: class method\n   # instance method\n\nOther symbols\n  => returns\n->() callback return\n[xx] optional\n<xx> data type\n\nRecommended order: class first, then sockets, then instance. Internally:\nProperties, events, methods.\n\n// Anything after two forward slashes is a comment\n```\n\n## How does it look like?\n\nLike this.\n\n![Like this.][api-example]\n\n[api-reference]: https://gist.github.com/benbeltran/4694c46fcec131468e34\n[api-example]: https://i.imgur.com/5WXuf4u.png\n",
+  "readmeFilename": "README.md",
+  "bugs": {
+    "url": "https://github.com/rbdr/api-notation-atom/issues"
+  },
+  "homepage": "https://github.com/rbdr/api-notation-atom#readme",
+  "_id": "api-notation@1.0.2",
+  "_shasum": "307b0647acce54c74350a9d1257fae9ef9c964cd",
+  "_resolved": "file:../d-115828-94250-r4fn9v/package.tgz",
+  "_from": "../d-115828-94250-r4fn9v/package.tgz",
+  "_atomModuleCache": {
+    "version": 1,
+    "dependencies": [],
+    "extensions": {
+      ".json": [
+        "package.json"
+      ]
+    },
+    "folders": []
+  }
+}
\ No newline at end of file
diff --git a/atom/packages/ex-mode/.travis.yml b/atom/packages/ex-mode/.travis.yml
new file mode 100644 (file)
index 0000000..3a85896
--- /dev/null
@@ -0,0 +1,13 @@
+language: objective-c
+env:
+    - APM_TEST_PACKAGES="vim-mode"
+
+notifications:
+  email:
+    on_success: never
+    on_failure: change
+
+script: 'curl -s https://raw.githubusercontent.com/atom/ci/master/build-package.sh | sh'
+
+git:
+  depth: 10
index ad57372a3ddce0c695931ada079f96b1b533b7c7..9aa8d036013c773aa1cfd4c15a5fb300dc49055d 100644 (file)
@@ -1,3 +1,8 @@
+## 0.6.0
+* No project/multiple projects paths (uses first one)
+* Support for :set
+* Fixes
+
 ## 0.5.0
 * Comply with upcoming Atom API 1.0
 * Added `:d`
 ## 0.5.0
 * Comply with upcoming Atom API 1.0
 * Added `:d`
index b676535c13a2333a9e7dfb12769542cab5aeb2a9..7c0f37c342e061cf2cec32b23bb99bb53b4a236f 100644 (file)
@@ -34,6 +34,9 @@ class ExState
   onDidFailToExecute: (fn) ->
     @emitter.on('failed-to-execute', fn)
 
   onDidFailToExecute: (fn) ->
     @emitter.on('failed-to-execute', fn)
 
+  onDidProcessOpStack: (fn) ->
+    @emitter.on('processed-op-stack', fn)
+
   pushOperations: (operations) ->
     @opStack.push operations
 
   pushOperations: (operations) ->
     @opStack.push operations
 
@@ -55,5 +58,6 @@ class ExState
         else
           throw e
     @clearOpStack()
         else
           throw e
     @clearOpStack()
+    @emitter.emit('processed-op-stack')
 
 module.exports = ExState
 
 module.exports = ExState
index c159534c4f62af3f1d977327a2af4c0f368c6f0d..e259c90919e1a12146b290a56d7fa2d321692d8e 100644 (file)
@@ -1,5 +1,7 @@
 path = require 'path'
 CommandError = require './command-error'
 path = require 'path'
 CommandError = require './command-error'
+fs = require 'fs-plus'
+VimOption = require './vim-option'
 
 trySave = (func) ->
   deferred = Promise.defer()
 
 trySave = (func) ->
   deferred = Promise.defer()
@@ -30,26 +32,37 @@ trySave = (func) ->
 
   deferred.promise
 
 
   deferred.promise
 
+saveAs = (filePath) ->
+  editor = atom.workspace.getActiveTextEditor()
+  fs.writeFileSync(filePath, editor.getText())
+
 getFullPath = (filePath) ->
 getFullPath = (filePath) ->
-  return filePath if path.isAbsolute(filePath)
-  return path.join(atom.project.getPath(), filePath)
-
-replaceGroups = (groups, replString) ->
-  arr = replString.split('')
-  offset = 0
-  cdiff = 0
-
-  while (m = replString.match(/(?:[^\\]|^)\\(\d)/))?
-    group = groups[m[1]] or ''
-    i = replString.indexOf(m[0])
-    l = m[0].length
-    replString = replString.slice(i + l)
-    arr[i + offset...i + offset + l] = (if l is 2 then '' else m[0][0]) +
-      group
-    arr = arr.join('').split ''
-    offset += i + l - group.length
-
-  return arr.join('').replace(/\\\\(\d)/, '\\$1')
+  filePath = fs.normalize(filePath)
+
+  if path.isAbsolute(filePath)
+    filePath
+  else if atom.project.getPaths().length == 0
+    path.join(fs.normalize('~'), filePath)
+  else
+    path.join(atom.project.getPaths()[0], filePath)
+
+replaceGroups = (groups, string) ->
+  replaced = ''
+  escaped = false
+  while (char = string[0])?
+    string = string[1..]
+    if char is '\\' and not escaped
+      escaped = true
+    else if /\d/.test(char) and escaped
+      escaped = false
+      group = groups[parseInt(char)]
+      group ?= ''
+      replaced += group
+    else
+      escaped = false
+      replaced += char
+
+  replaced
 
 class Ex
   @singleton: =>
 
 class Ex
   @singleton: =>
@@ -63,21 +76,21 @@ class Ex
 
   q: => @quit()
 
 
   q: => @quit()
 
-  tabedit: (range, args) ->
-    args = args.trim()
-    filePaths = args.split(' ')
-    pane = atom.workspace.getActivePane()
-    if filePaths? and filePaths.length > 0
-      for file in filePaths
-        do -> atom.workspace.openURIInPane file, pane
+  tabedit: (range, args) =>
+    if args.trim() isnt ''
+      @edit(range, args)
     else
     else
-      atom.workspace.openURIInPane('', pane)
+      @tabnew(range, args)
 
   tabe: (args...) => @tabedit(args...)
 
 
   tabe: (args...) => @tabedit(args...)
 
-  tabnew: (args...) => @tabedit(args...)
+  tabnew: (range, args) =>
+    if args.trim() is ''
+      atom.workspace.open()
+    else
+      @tabedit(range, args)
 
 
-  tabclose: => @quit()
+  tabclose: (args...) => @quit(args...)
 
   tabc: => @tabclose()
 
 
   tabc: => @tabclose()
 
@@ -95,12 +108,29 @@ class Ex
 
   edit: (range, filePath) ->
     filePath = filePath.trim()
 
   edit: (range, filePath) ->
     filePath = filePath.trim()
+    if filePath[0] is '!'
+      force = true
+      filePath = filePath[1..].trim()
+    else
+      force = false
+
+    editor = atom.workspace.getActiveTextEditor()
+    if editor.isModified() and not force
+      throw new CommandError('No write since last change (add ! to override)')
     if filePath.indexOf(' ') isnt -1
       throw new CommandError('Only one file name allowed')
     if filePath.indexOf(' ') isnt -1
       throw new CommandError('Only one file name allowed')
-    buffer = atom.workspace.getActiveTextEditor().buffer
-    filePath = buffer.getPath() if filePath is ''
-    buffer.setPath(getFullPath(filePath))
-    buffer.load()
+
+    if filePath.length isnt 0
+      fullPath = getFullPath(filePath)
+      if fullPath is editor.getPath()
+        editor.getBuffer().reload()
+      else
+        atom.workspace.open(fullPath)
+    else
+      if editor.getPath()?
+        editor.getBuffer().reload()
+      else
+        throw new CommandError('No file name')
 
   e: (args...) => @edit(args...)
 
 
   e: (args...) => @edit(args...)
 
@@ -110,32 +140,33 @@ class Ex
     buffer.load()
 
   write: (range, filePath) ->
     buffer.load()
 
   write: (range, filePath) ->
+    if filePath[0] is '!'
+      force = true
+      filePath = filePath[1..]
+    else
+      force = false
+
     filePath = filePath.trim()
     filePath = filePath.trim()
+    if filePath.indexOf(' ') isnt -1
+      throw new CommandError('Only one file name allowed')
+
     deferred = Promise.defer()
 
     deferred = Promise.defer()
 
-    pane = atom.workspace.getActivePane()
     editor = atom.workspace.getActiveTextEditor()
     editor = atom.workspace.getActiveTextEditor()
-    if atom.workspace.getActiveTextEditor().getPath() isnt undefined
-      if filePath.length > 0
-        editorPath = editor.getPath()
-        fullPath = getFullPath(filePath)
-        trySave(-> editor.saveAs(fullPath))
-          .then ->
-            deferred.resolve()
-        editor.buffer.setPath(editorPath)
-      else
-        trySave(-> editor.save())
-          .then deferred.resolve
-    else
-      if filePath.length > 0
-        fullPath = getFullPath(filePath)
-        trySave(-> editor.saveAs(fullPath))
-          .then deferred.resolve
-      else
-        fullPath = atom.showSaveDialogSync()
-        if fullPath?
-          trySave(-> editor.saveAs(fullPath))
-            .then deferred.resolve
+    saved = false
+    if filePath.length isnt 0
+      fullPath = getFullPath(filePath)
+    if editor.getPath()? and (not fullPath? or editor.getPath() == fullPath)
+      # Use editor.save when no path is given or the path to the file is given
+      trySave(-> editor.save()).then(deferred.resolve)
+      saved = true
+    else if not fullPath?
+      fullPath = atom.showSaveDialogSync()
+
+    if not saved and fullPath?
+      if not force and fs.existsSync(fullPath)
+        throw new CommandError("File exists (add ! to override)")
+      trySave(-> saveAs(fullPath)).then(deferred.resolve)
 
     deferred.promise
 
 
     deferred.promise
 
@@ -145,7 +176,7 @@ class Ex
   wq: (args...) =>
     @write(args...).then => @quit()
 
   wq: (args...) =>
     @write(args...).then => @quit()
 
-  x: (args...) => @wq(args...)
+  xit: (args...) => @wq(args...)
 
   wa: ->
     atom.workspace.saveAll()
 
   wa: ->
     atom.workspace.saveAll()
@@ -185,6 +216,9 @@ class Ex
       throw new CommandError('Trailing characters')
     spl[1] ?= ''
     spl[2] ?= ''
       throw new CommandError('Trailing characters')
     spl[1] ?= ''
     spl[2] ?= ''
+    notDelimRE = new RegExp("\\\\#{delim}", 'g')
+    spl[0] = spl[0].replace(notDelimRE, delim)
+    spl[1] = spl[1].replace(notDelimRE, delim)
 
     try
       pattern = new RegExp(spl[0], spl[2])
 
     try
       pattern = new RegExp(spl[0], spl[2])
@@ -198,14 +232,13 @@ class Ex
         throw e
 
     buffer = atom.workspace.getActiveTextEditor().buffer
         throw e
 
     buffer = atom.workspace.getActiveTextEditor().buffer
-    cp = buffer.history.createCheckpoint()
-    for line in [range[0]..range[1]]
-      buffer.scanInRange(pattern,
-        [[line, 0], [line, buffer.lines[line].length]],
-        ({match, matchText, range, stop, replace}) ->
-          replace(replaceGroups(match[..], spl[1]))
-      )
-    buffer.history.groupChangesSinceCheckpoint(cp)
+    atom.workspace.getActiveTextEditor().transact ->
+      for line in [range[0]..range[1]]
+        buffer.scanInRange(pattern,
+          [[line, 0], [line, buffer.lines[line].length]],
+          ({match, matchText, range, stop, replace}) ->
+            replace(replaceGroups(match[..], spl[1]))
+        )
 
   s: (args...) => @substitute(args...)
 
 
   s: (args...) => @substitute(args...)
 
@@ -228,4 +261,27 @@ class Ex
     range = [[range[0], 0], [range[1] + 1, 0]]
     atom.workspace.getActiveTextEditor().buffer.setTextInRange(range, '')
 
     range = [[range[0], 0], [range[1] + 1, 0]]
     atom.workspace.getActiveTextEditor().buffer.setTextInRange(range, '')
 
+  set: (range, args) ->
+    args = args.trim()
+    if args == ""
+      throw new CommandError("No option specified")
+    options = args.split(' ')
+    for option in options
+      do ->
+        if option.includes("=")
+          nameValPair = option.split("=")
+          if (nameValPair.length != 2)
+            throw new CommandError("Wrong option format. [name]=[value] format is expected")
+          optionName = nameValPair[0]
+          optionValue = nameValPair[1]
+          optionProcessor = VimOption.singleton()[optionName]
+          if not optionProcessor?
+            throw new CommandError("No such option: #{optionName}")
+          optionProcessor(optionValue)
+        else
+          optionProcessor = VimOption.singleton()[option]
+          if not optionProcessor?
+            throw new CommandError("No such option: #{option}")
+          optionProcessor()
+
 module.exports = Ex
 module.exports = Ex
index af96e77ce099063960a97d2154883ea73825e7f2..742d75163aec3bcc97de8d2ef9f5accce7791990 100644 (file)
@@ -1,11 +1,11 @@
-ExCommandModeInputElement = require './ex-command-mode-input-element'
+ExNormalModeInputElement = require './ex-normal-mode-input-element'
 
 class ViewModel
   constructor: (@command, opts={}) ->
     {@editor, @exState} = @command
 
 
 class ViewModel
   constructor: (@command, opts={}) ->
     {@editor, @exState} = @command
 
-    @view = new ExCommandModeInputElement().initialize(@, opts)
-    @editor.commandModeInputView = @view
+    @view = new ExNormalModeInputElement().initialize(@, opts)
+    @editor.normalModeInputView = @view
     @exState.onDidFailToExecute => @view.remove()
     @done = false
 
     @exState.onDidFailToExecute => @view.remove()
     @done = false
 
diff --git a/atom/packages/ex-mode/lib/vim-option.coffee b/atom/packages/ex-mode/lib/vim-option.coffee
new file mode 100644 (file)
index 0000000..2ee056c
--- /dev/null
@@ -0,0 +1,23 @@
+class VimOption
+  @singleton: =>
+    @option ||= new VimOption
+
+  list: =>
+    atom.config.set("editor.showInvisibles", true)
+
+  nolist: =>
+    atom.config.set("editor.showInvisibles", false)
+
+  number: =>
+    atom.config.set("editor.showLineNumbers", true)
+
+  nu: =>
+    @number()
+
+  nonumber: =>
+    atom.config.set("editor.showLineNumbers", false)
+
+  nonu: =>
+    @nonumber()
+
+module.exports = VimOption
index 4f8b31aaaad8ad0fae2ea5fd6a17a759d52a9f9b..856ec1943d75b93b32ebd25575cb832cb98ed80f 100644 (file)
@@ -84,7 +84,8 @@ class MySelectListView extends SelectListView
    super
    @addClass('overlay from-top')
    @setItems(['Hello', 'World'])
    super
    @addClass('overlay from-top')
    @setItems(['Hello', 'World'])
-   atom.workspaceView.append(this)
+   @panel ?= atom.workspace.addModalPanel(item: this) 
+   @panel.show()
    @focusFilterEditor()
 
  viewForItem: (item) ->
    @focusFilterEditor()
 
  viewForItem: (item) ->
@@ -92,6 +93,9 @@ class MySelectListView extends SelectListView
 
  confirmed: (item) ->
    console.log("#{item} was selected")
 
  confirmed: (item) ->
    console.log("#{item} was selected")
+   
+ cancelled: ->
+   console.log("This view was cancelled")
 ```
 
 ## Methods
 ```
 
 ## Methods
@@ -106,7 +110,7 @@ subclasses. Called when the item is about to appended to the list view.
 * `item` The model item being rendered. This will always be one of the items
   previously passed to `::setItems`.
 
 * `item` The model item being rendered. This will always be one of the items
   previously passed to `::setItems`.
 
-Returns a String of HTML, DOM element, jQuery object, or View.
+Returns a String of HTML, DOM element, jQuery object, or View. Note the root element must be an `li`.
 
 #### `::confirmed`
 
 
 #### `::confirmed`
 
index e957a2bf041230fd6a7f9ee7efb253972a438d88..8aecdaf627be0520620dc31cc0db3056c1406496 100644 (file)
@@ -9,11 +9,11 @@
     __extends(TextEditorView, _super);
 
     function TextEditorView(params) {
     __extends(TextEditorView, _super);
 
     function TextEditorView(params) {
-      var attributes, mini, name, placeholderText, value;
+      var attributes, editor, mini, name, placeholderText, value;
       if (params == null) {
         params = {};
       }
       if (params == null) {
         params = {};
       }
-      mini = params.mini, placeholderText = params.placeholderText, attributes = params.attributes;
+      mini = params.mini, placeholderText = params.placeholderText, attributes = params.attributes, editor = params.editor;
       if (attributes == null) {
         attributes = {};
       }
       if (attributes == null) {
         attributes = {};
       }
       if (placeholderText != null) {
         attributes['placeholder-text'] = placeholderText;
       }
       if (placeholderText != null) {
         attributes['placeholder-text'] = placeholderText;
       }
-      this.element = document.createElement('atom-text-editor');
+      if (editor != null) {
+        this.element = atom.views.getView(editor);
+      } else {
+        this.element = document.createElement('atom-text-editor');
+      }
       for (name in attributes) {
         value = attributes[name];
         this.element.setAttribute(name, value);
       for (name in attributes) {
         value = attributes[name];
         this.element.setAttribute(name, value);
index 297615c2a367ab057e9e0ed74f5995039d92beb2..b9dadd925620b8a8f73656f356670dcc7e519f65 100644 (file)
@@ -16,7 +16,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/fuzzaldrin.git"
+    "url": "git+https://github.com/atom/fuzzaldrin.git"
   },
   "bugs": {
     "url": "https://github.com/atom/fuzzaldrin/issues"
   },
   "bugs": {
     "url": "https://github.com/atom/fuzzaldrin/issues"
@@ -67,5 +67,6 @@
   ],
   "directories": {},
   "_shasum": "90204c3e2fdaa6941bb28d16645d418063a90e9b",
   ],
   "directories": {},
   "_shasum": "90204c3e2fdaa6941bb28d16645d418063a90e9b",
-  "_resolved": "https://registry.npmjs.org/fuzzaldrin/-/fuzzaldrin-2.1.0.tgz"
+  "_resolved": "https://registry.npmjs.org/fuzzaldrin/-/fuzzaldrin-2.1.0.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
index c5be504c1f8e8626e9f4bb49dd8b36a49399c79d..0837e286b480ea3d9e48e7bf0724da60cf232f2c 100644 (file)
@@ -1,6 +1,6 @@
 {
   "name": "atom-space-pen-views",
 {
   "name": "atom-space-pen-views",
-  "version": "2.0.5",
+  "version": "2.1.0",
   "description": "Atom SpacePen views that used to live in core.",
   "main": "./lib/main",
   "scripts": {
   "description": "Atom SpacePen views that used to live in core.",
   "main": "./lib/main",
   "scripts": {
     "coffee-cache": "^0.2.0",
     "temp": "^0.6.0"
   },
     "coffee-cache": "^0.2.0",
     "temp": "^0.6.0"
   },
-  "gitHead": "0e5fc262cc62d453bbd6dce9ecaec5caddc553f9",
+  "gitHead": "75ccee886e723a7a4913a4286e089225eec8834d",
   "homepage": "https://github.com/atom/atom-space-pen-views",
   "homepage": "https://github.com/atom/atom-space-pen-views",
-  "_id": "atom-space-pen-views@2.0.5",
-  "_shasum": "4ef545a6ef396c8342717b0d9d2569577a2651f4",
+  "_id": "atom-space-pen-views@2.1.0",
+  "_shasum": "688e73a04a1cc0f5a41c254c6875e72d58faffb1",
   "_from": "atom-space-pen-views@>=2.0.4 <3.0.0",
   "_from": "atom-space-pen-views@>=2.0.4 <3.0.0",
-  "_npmVersion": "1.4.28",
+  "_npmVersion": "1.4.23",
   "_npmUser": {
   "_npmUser": {
-    "name": "kevinsawicki",
-    "email": "kevinsawicki@gmail.com"
+    "name": "benogle",
+    "email": "ogle.ben@gmail.com"
   },
   "maintainers": [
     {
   },
   "maintainers": [
     {
@@ -63,9 +63,9 @@
     }
   ],
   "dist": {
     }
   ],
   "dist": {
-    "shasum": "4ef545a6ef396c8342717b0d9d2569577a2651f4",
-    "tarball": "http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.0.5.tgz"
+    "shasum": "688e73a04a1cc0f5a41c254c6875e72d58faffb1",
+    "tarball": "http://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.1.0.tgz"
   },
   "directories": {},
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.0.5.tgz"
+  "_resolved": "https://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.1.0.tgz"
 }
 }
index 1eace4a5430afd197e13a096b3a2c477a467c795..be85e24136e69eb80c171b70ab7eac34fdab0339 100644 (file)
@@ -9,7 +9,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/mixto"
+    "url": "git+https://github.com/atom/mixto.git"
   },
   "keywords": [
     "mixin",
   },
   "keywords": [
     "mixin",
index 7c7f3657f99e097e987cd851d62f64e1040f857c..66179a48b2a978880050238ee9bb5939dbc4f3e0 100644 (file)
@@ -9,7 +9,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/property-accessors"
+    "url": "git+https://github.com/atom/property-accessors.git"
   },
   "keywords": [
     "property",
   },
   "keywords": [
     "property",
index ccd6522c2584c2e09a12a142b03f66250fd097bd..53b6b8a8f8482bbccdc78b4b2cb41c5817d1f9ed 100644 (file)
@@ -9,7 +9,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "http://github.com/atom/emissary.git"
+    "url": "git+ssh://git@github.com/atom/emissary.git"
   },
   "bugs": {
     "url": "https://github.com/atom/emissary/issues"
   },
   "bugs": {
     "url": "https://github.com/atom/emissary/issues"
index 8635d0852661ea23b3aa22b6e70a4b4e72bcb206..92f075a9fcb645f41f816b62afd5a0149b773e3a 100644 (file)
@@ -9,7 +9,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/grim.git"
+    "url": "git+https://github.com/atom/grim.git"
   },
   "bugs": {
     "url": "https://github.com/atom/grim/issues"
   },
   "bugs": {
     "url": "https://github.com/atom/grim/issues"
index 5ca185930bf5cbc5ccbd286a18c99caac23aedf0..5f4b74503e5bfbdb238fc46b4c06fc39d78c7f8b 100644 (file)
@@ -9,7 +9,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/event-kit.git"
+    "url": "git+https://github.com/atom/event-kit.git"
   },
   "bugs": {
     "url": "https://github.com/atom/event-kit/issues"
   },
   "bugs": {
     "url": "https://github.com/atom/event-kit/issues"
similarity index 89%
rename from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/async/package.json
rename to atom/packages/ex-mode/node_modules/fs-plus/node_modules/async/package.json
index a212ddf329fc5b5e67631f5904ee4344b65689fd..c1296ac59d899803170c0ae459945544e95f3533 100644 (file)
@@ -8,7 +8,7 @@
   "version": "0.2.10",
   "repository": {
     "type": "git",
   "version": "0.2.10",
   "repository": {
     "type": "git",
-    "url": "https://github.com/caolan/async.git"
+    "url": "git+https://github.com/caolan/async.git"
   },
   "bugs": {
     "url": "https://github.com/caolan/async/issues"
   },
   "bugs": {
     "url": "https://github.com/caolan/async/issues"
@@ -54,5 +54,7 @@
   ],
   "directories": {},
   "_shasum": "b6bbe0b0674b9d719708ca38de8c237cb526c3d1",
   ],
   "directories": {},
   "_shasum": "b6bbe0b0674b9d719708ca38de8c237cb526c3d1",
-  "_resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
+  "_resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+  "readme": "ERROR: No README data found!",
+  "homepage": "https://github.com/caolan/async#readme"
 }
 }
similarity index 79%
rename from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/package.json
rename to atom/packages/ex-mode/node_modules/fs-plus/node_modules/mkdirp/package.json
index cc7b32915eba2ec573f00f4bdecc6ae15e89e4a5..2f42bece43cf1654c27314fec7c13edcf0b986ab 100644 (file)
@@ -14,7 +14,7 @@
   ],
   "repository": {
     "type": "git",
   ],
   "repository": {
     "type": "git",
-    "url": "http://github.com/substack/node-mkdirp.git"
+    "url": "git+ssh://git@github.com/substack/node-mkdirp.git"
   },
   "scripts": {
     "test": "tap test/*.js"
   },
   "scripts": {
     "test": "tap test/*.js"
   ],
   "directories": {},
   "_shasum": "de3e5f8961c88c787ee1368df849ac4413eca8d7",
   ],
   "directories": {},
   "_shasum": "de3e5f8961c88c787ee1368df849ac4413eca8d7",
-  "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"
+  "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+  "bugs": {
+    "url": "https://github.com/substack/node-mkdirp/issues"
+  },
+  "readme": "ERROR: No README data found!",
+  "homepage": "https://github.com/substack/node-mkdirp#readme"
 }
 }
similarity index 97%
rename from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/rimraf/package.json
rename to atom/packages/ex-mode/node_modules/fs-plus/node_modules/rimraf/package.json
index 34093fa06c28a89195cbef8166f568faf14364e1..0c67133718e89eea7b92adc86e03f94fc2f4d6f4 100644 (file)
@@ -68,5 +68,6 @@
     "tarball": "http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
   },
   "directories": {},
     "tarball": "http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
+  "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
similarity index 92%
rename from atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/package.json
rename to atom/packages/ex-mode/node_modules/fs-plus/package.json
index 76dbfe4d476dcb6777d7ed4012f0409b4316155a..c8e5c2ceecd352d9adf8ce2c6cc618789f929e06 100644 (file)
@@ -9,7 +9,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/fs-plus.git"
+    "url": "git+https://github.com/atom/fs-plus.git"
   },
   "bugs": {
     "url": "https://github.com/atom/fs-plus/issues"
   },
   "bugs": {
     "url": "https://github.com/atom/fs-plus/issues"
@@ -43,7 +43,7 @@
   "gitHead": "eb4915c02f09427b1bb002b886a9cfc34a262e1f",
   "_id": "fs-plus@2.8.1",
   "_shasum": "60bcae0d2066f4bb4726f23add525dada80630f6",
   "gitHead": "eb4915c02f09427b1bb002b886a9cfc34a262e1f",
   "_id": "fs-plus@2.8.1",
   "_shasum": "60bcae0d2066f4bb4726f23add525dada80630f6",
-  "_from": "fs-plus@>=2.5.0 <3.0.0",
+  "_from": "fs-plus@>=2.2.8 <3.0.0",
   "_npmVersion": "1.4.28",
   "_npmUser": {
     "name": "kevinsawicki",
   "_npmVersion": "1.4.28",
   "_npmUser": {
     "name": "kevinsawicki",
@@ -72,5 +72,6 @@
     "tarball": "http://registry.npmjs.org/fs-plus/-/fs-plus-2.8.1.tgz"
   },
   "directories": {},
     "tarball": "http://registry.npmjs.org/fs-plus/-/fs-plus-2.8.1.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/fs-plus/-/fs-plus-2.8.1.tgz"
+  "_resolved": "https://registry.npmjs.org/fs-plus/-/fs-plus-2.8.1.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
index 8faa7ab295aae9089665c323102b944d00538b60..fa39865d715bef1e745c6733299c35fdd2e29357 100644 (file)
@@ -1,7 +1,5 @@
 (function() {
 (function() {
-  var Deprecation, SourceMapCache, convertLine;
-
-  convertLine = require('coffeestack').convertLine;
+  var Deprecation, SourceMapCache;
 
   SourceMapCache = {};
 
 
   SourceMapCache = {};
 
@@ -48,7 +46,7 @@
     };
 
     Deprecation.prototype.getLocationFromCallsite = function(callsite) {
     };
 
     Deprecation.prototype.getLocationFromCallsite = function(callsite) {
-      var column, converted, fileName, line;
+      var column, fileName, line;
       if (callsite.location != null) {
         return callsite.location;
       }
       if (callsite.location != null) {
         return callsite.location;
       }
         fileName = callsite.getFileName();
         line = callsite.getLineNumber();
         column = callsite.getColumnNumber();
         fileName = callsite.getFileName();
         line = callsite.getLineNumber();
         column = callsite.getColumnNumber();
-        if (/\.coffee$/.test(fileName)) {
-          if (converted = convertLine(fileName, line, column, SourceMapCache)) {
-            line = converted.line, column = converted.column;
-          }
-        }
         return "" + fileName + ":" + line + ":" + column;
       }
     };
         return "" + fileName + ":" + line + ":" + column;
       }
     };
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/README.md b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/README.md
deleted file mode 100644 (file)
index f3f64b7..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-# CoffeeStack [![Build Status](https://travis-ci.org/kevinsawicki/coffeestack.png)](https://travis-ci.org/kevinsawicki/coffeestack)
-
-Module to convert JavaScript stack traces to CoffeeScript stack traces.
-
-## Installing
-
-```sh
-npm install coffeestack
-```
-
-## Using
-
-```coffeescript
-{convertStackTrace} = require 'coffeestack'
-
-try
-  throw new Error('this is an error')
-catch error
-  console.error(convertStackTrace(error.stack))
-```
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/index.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/index.js
deleted file mode 100644 (file)
index 5ad299b..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-(function() {
-  var CoffeeScript, CoffeeScriptVersion, SourceMapConsumer, cachePath, compileSourceMap, convertLine, convertStackTrace, crypto, fs, getCachePath, getCachedSourceMap, getSourceMapPosition, loadCoffeeScript, path, writeSourceMapToCache;
-
-  crypto = require('crypto');
-
-  fs = require('fs-plus');
-
-  path = require('path');
-
-  CoffeeScriptVersion = null;
-
-  CoffeeScript = null;
-
-  SourceMapConsumer = null;
-
-  cachePath = null;
-
-  getCachePath = function(code) {
-    var digest;
-    if (!cachePath) {
-      return;
-    }
-    digest = crypto.createHash('sha1').update(code, 'utf8').digest('hex');
-    if (CoffeeScriptVersion == null) {
-      CoffeeScriptVersion = require('coffee-script/package.json').version;
-    }
-    return path.join(cachePath, CoffeeScriptVersion, "" + digest + ".json");
-  };
-
-  getCachedSourceMap = function(codeCachePath) {
-    if (fs.isFileSync(codeCachePath)) {
-      try {
-        return fs.readFileSync(codeCachePath, 'utf8');
-      } catch (_error) {}
-    }
-  };
-
-  writeSourceMapToCache = function(codeCachePath, sourceMap) {
-    if (codeCachePath) {
-      try {
-        fs.writeFileSync(codeCachePath, sourceMap);
-      } catch (_error) {}
-    }
-  };
-
-  loadCoffeeScript = function() {
-    var coffee, coffeePrepareStackTrace;
-    coffee = require('coffee-script');
-    coffeePrepareStackTrace = Error.prepareStackTrace;
-    if (coffeePrepareStackTrace != null) {
-      Error.prepareStackTrace = function(error, stack) {
-        var coffeeError;
-        try {
-          return coffeePrepareStackTrace(error, stack);
-        } catch (_error) {
-          coffeeError = _error;
-          return stack;
-        }
-      };
-    }
-    return coffee;
-  };
-
-  compileSourceMap = function(code, filePath, codeCachePath) {
-    var v3SourceMap;
-    if (CoffeeScript == null) {
-      CoffeeScript = loadCoffeeScript();
-    }
-    v3SourceMap = CoffeeScript.compile(code, {
-      sourceMap: true,
-      filename: filePath
-    }).v3SourceMap;
-    writeSourceMapToCache(codeCachePath, v3SourceMap);
-    return v3SourceMap;
-  };
-
-  getSourceMapPosition = function(sourceMapContents, line, column) {
-    var sourceMap;
-    if (SourceMapConsumer == null) {
-      SourceMapConsumer = require('source-map').SourceMapConsumer;
-    }
-    sourceMap = new SourceMapConsumer(sourceMapContents);
-    return sourceMap.originalPositionFor({
-      line: line,
-      column: column
-    });
-  };
-
-  convertLine = function(filePath, line, column, sourceMaps) {
-    var code, codeCachePath, position, source, sourceMapContents, sourceMapPath;
-    if (sourceMaps == null) {
-      sourceMaps = {};
-    }
-    try {
-      if (!(sourceMapContents = sourceMaps[filePath])) {
-        if (path.extname(filePath) === '.js') {
-          sourceMapPath = "" + filePath + ".map";
-          sourceMapContents = fs.readFileSync(sourceMapPath, 'utf8');
-        } else {
-          code = fs.readFileSync(filePath, 'utf8');
-          codeCachePath = getCachePath(code);
-          sourceMapContents = getCachedSourceMap(codeCachePath);
-          if (sourceMapContents == null) {
-            sourceMapContents = compileSourceMap(code, filePath, codeCachePath);
-          }
-        }
-      }
-      if (sourceMapContents) {
-        sourceMaps[filePath] = sourceMapContents;
-        position = getSourceMapPosition(sourceMapContents, line, column);
-        if ((position.line != null) && (position.column != null)) {
-          if (position.source && position.source !== '.') {
-            source = path.resolve(filePath, '..', position.source);
-          } else {
-            source = filePath;
-          }
-          return {
-            line: position.line,
-            column: position.column,
-            source: source
-          };
-        }
-      }
-    } catch (_error) {}
-    return null;
-  };
-
-  convertStackTrace = function(stackTrace, sourceMaps) {
-    var atLinePattern, column, convertedLines, filePath, line, mappedLine, match, stackTraceLine, _i, _len, _ref;
-    if (sourceMaps == null) {
-      sourceMaps = {};
-    }
-    if (!stackTrace) {
-      return stackTrace;
-    }
-    convertedLines = [];
-    atLinePattern = /^(\s+at .* )\((.*):(\d+):(\d+)\)/;
-    _ref = stackTrace.split('\n');
-    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-      stackTraceLine = _ref[_i];
-      if (match = atLinePattern.exec(stackTraceLine)) {
-        filePath = match[2];
-        line = match[3];
-        column = match[4];
-        if (path.extname(filePath) === '.js') {
-          mappedLine = convertLine(filePath, line, column, sourceMaps);
-        }
-        if (mappedLine != null) {
-          convertedLines.push("" + match[1] + "(" + mappedLine.source + ":" + mappedLine.line + ":" + mappedLine.column + ")");
-        } else {
-          convertedLines.push(stackTraceLine);
-        }
-      } else {
-        convertedLines.push(stackTraceLine);
-      }
-    }
-    return convertedLines.join('\n');
-  };
-
-  exports.convertLine = convertLine;
-
-  exports.convertStackTrace = convertStackTrace;
-
-  exports.setCacheDirectory = function(newCachePath) {
-    return cachePath = newCachePath;
-  };
-
-  exports.getCacheDirectory = function() {
-    return cachePath;
-  };
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/.bin/cake b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/.bin/cake
deleted file mode 120000 (symlink)
index d95f32a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../coffee-script/bin/cake
\ No newline at end of file
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/.bin/coffee b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/.bin/coffee
deleted file mode 120000 (symlink)
index b57f275..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../coffee-script/bin/coffee
\ No newline at end of file
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/.npmignore b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/.npmignore
deleted file mode 100644 (file)
index 21e430d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-*.coffee
-*.html
-.DS_Store
-.git*
-Cakefile
-documentation/
-examples/
-extras/coffee-script.js
-raw/
-src/
-test/
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/CNAME b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/CNAME
deleted file mode 100644 (file)
index faadabe..0000000
+++ /dev/null
@@ -1 +0,0 @@
-coffeescript.org
\ No newline at end of file
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/CONTRIBUTING.md b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/CONTRIBUTING.md
deleted file mode 100644 (file)
index 5ea4c5f..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-## How to contribute to CoffeeScript
-
-* Before you open a ticket or send a pull request, [search](https://github.com/jashkenas/coffeescript/issues) for previous discussions about the same feature or issue. Add to the earlier ticket if you find one.
-
-* Before sending a pull request for a feature, be sure to have [tests](https://github.com/jashkenas/coffeescript/tree/master/test).
-
-* Use the same coding style as the rest of the [codebase](https://github.com/jashkenas/coffeescript/tree/master/src). If you're just getting started with CoffeeScript, there's a nice [style guide](https://github.com/polarmobile/coffeescript-style-guide).
-
-* In your pull request, do not add documentation to `index.html` or re-build the minified `coffee-script.js` file. We'll do those things before cutting a new release.
\ No newline at end of file
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/LICENSE b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/LICENSE
deleted file mode 100644 (file)
index 4d09b4d..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2009-2014 Jeremy Ashkenas
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/README b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/README
deleted file mode 100644 (file)
index 37d7bbf..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-            {
-         }   }   {
-        {   {  }  }
-         }   }{  {
-        {  }{  }  }                    _____       __  __
-       { }{ }{  { }                   / ____|     / _|/ _|
-     .- { { }  { }} -.               | |     ___ | |_| |_ ___  ___
-    (  { } { } { } }  )              | |    / _ \|  _|  _/ _ \/ _ \
-    |`-..________ ..-'|              | |___| (_) | | | ||  __/  __/
-    |                 |               \_____\___/|_| |_| \___|\___|
-    |                 ;--.
-    |                (__  \            _____           _       _
-    |                 | )  )          / ____|         (_)     | |
-    |                 |/  /          | (___   ___ _ __ _ _ __ | |_
-    |                 (  /            \___ \ / __| '__| | '_ \| __|
-    |                 |/              ____) | (__| |  | | |_) | |_
-    |                 |              |_____/ \___|_|  |_| .__/ \__|
-     `-.._________..-'                                  | |
-                                                        |_|
-
-
-  CoffeeScript is a little language that compiles into JavaScript.
-
-  If you have the Node Package Manager installed:
-  npm install -g coffee-script
-  (Leave off the -g if you don't wish to install globally.)
-
-  Or, if you don't wish to use npm:
-  sudo bin/cake install
-
-  Execute a script:
-  coffee /path/to/script.coffee
-
-  Compile a script:
-  coffee -c /path/to/script.coffee
-
-  For documentation, usage, and examples, see:
-  http://coffeescript.org/
-
-  To suggest a feature, report a bug, or general discussion:
-  http://github.com/jashkenas/coffeescript/issues/
-
-  If you'd like to chat, drop by #coffeescript on Freenode IRC,
-  or on webchat.freenode.net.
-
-  The source repository:
-  git://github.com/jashkenas/coffeescript.git
-
-  Top 100 contributors are listed here:
-  http://github.com/jashkenas/coffeescript/contributors
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/README.md b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/README.md
deleted file mode 100644 (file)
index 90f6788..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-            {
-         }   }   {
-        {   {  }  }
-         }   }{  {
-        {  }{  }  }                    _____       __  __
-       { }{ }{  { }                   / ____|     / _|/ _|
-     .- { { }  { }} -.               | |     ___ | |_| |_ ___  ___
-    (  { } { } { } }  )              | |    / _ \|  _|  _/ _ \/ _ \
-    |`-..________ ..-'|              | |___| (_) | | | ||  __/  __/
-    |                 |               \_____\___/|_| |_| \___|\___|
-    |                 ;--.
-    |                (__  \            _____           _       _
-    |                 | )  )          / ____|         (_)     | |
-    |                 |/  /          | (___   ___ _ __ _ _ __ | |_
-    |                 (  /            \___ \ / __| '__| | '_ \| __|
-    |                 |/              ____) | (__| |  | | |_) | |_
-    |                 |              |_____/ \___|_|  |_| .__/ \__|
-     `-.._________..-'                                  | |
-                                                        |_|
-
-CoffeeScript is a little language that compiles into JavaScript.
-
-## Installation
-
-If you have the node package manager, npm, installed:
-
-```shell
-npm install -g coffee-script
-```
-
-Leave off the `-g` if you don't wish to install globally. If you don't wish to use npm:
-
-```shell
-git clone https://github.com/jashkenas/coffeescript.git
-sudo coffeescript/bin/cake install
-```
-
-## Getting Started
-
-Execute a script:
-
-```shell
-coffee /path/to/script.coffee
-```
-
-Compile a script:
-
-```shell
-coffee -c /path/to/script.coffee
-```
-
-For documentation, usage, and examples, see: http://coffeescript.org/
-
-To suggest a feature or report a bug: http://github.com/jashkenas/coffeescript/issues
-
-If you'd like to chat, drop by #coffeescript on Freenode IRC.
-
-The source repository: https://github.com/jashkenas/coffeescript.git
-
-Our lovely and talented contributors are listed here: http://github.com/jashkenas/coffeescript/contributors
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/bin/cake b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/bin/cake
deleted file mode 100755 (executable)
index 5965f4e..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/env node
-
-var path = require('path');
-var fs   = require('fs');
-var lib  = path.join(path.dirname(fs.realpathSync(__filename)), '../lib');
-
-require(lib + '/coffee-script/cake').run();
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/bin/coffee b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/bin/coffee
deleted file mode 100755 (executable)
index 3d1d71c..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/env node
-
-var path = require('path');
-var fs   = require('fs');
-var lib  = path.join(path.dirname(fs.realpathSync(__filename)), '../lib');
-
-require(lib + '/coffee-script/command').run();
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/browser.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/browser.js
deleted file mode 100644 (file)
index da2830d..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(function() {
-  var CoffeeScript, compile, runScripts,
-    __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
-  CoffeeScript = require('./coffee-script');
-
-  CoffeeScript.require = require;
-
-  compile = CoffeeScript.compile;
-
-  CoffeeScript["eval"] = function(code, options) {
-    if (options == null) {
-      options = {};
-    }
-    if (options.bare == null) {
-      options.bare = true;
-    }
-    return eval(compile(code, options));
-  };
-
-  CoffeeScript.run = function(code, options) {
-    if (options == null) {
-      options = {};
-    }
-    options.bare = true;
-    options.shiftLine = true;
-    return Function(compile(code, options))();
-  };
-
-  if (typeof window === "undefined" || window === null) {
-    return;
-  }
-
-  if ((typeof btoa !== "undefined" && btoa !== null) && (typeof JSON !== "undefined" && JSON !== null) && (typeof unescape !== "undefined" && unescape !== null) && (typeof encodeURIComponent !== "undefined" && encodeURIComponent !== null)) {
-    compile = function(code, options) {
-      var js, v3SourceMap, _ref;
-      if (options == null) {
-        options = {};
-      }
-      options.sourceMap = true;
-      options.inline = true;
-      _ref = CoffeeScript.compile(code, options), js = _ref.js, v3SourceMap = _ref.v3SourceMap;
-      return "" + js + "\n//# sourceMappingURL=data:application/json;base64," + (btoa(unescape(encodeURIComponent(v3SourceMap)))) + "\n//# sourceURL=coffeescript";
-    };
-  }
-
-  CoffeeScript.load = function(url, callback, options, hold) {
-    var xhr;
-    if (options == null) {
-      options = {};
-    }
-    if (hold == null) {
-      hold = false;
-    }
-    options.sourceFiles = [url];
-    xhr = window.ActiveXObject ? new window.ActiveXObject('Microsoft.XMLHTTP') : new window.XMLHttpRequest();
-    xhr.open('GET', url, true);
-    if ('overrideMimeType' in xhr) {
-      xhr.overrideMimeType('text/plain');
-    }
-    xhr.onreadystatechange = function() {
-      var param, _ref;
-      if (xhr.readyState === 4) {
-        if ((_ref = xhr.status) === 0 || _ref === 200) {
-          param = [xhr.responseText, options];
-          if (!hold) {
-            CoffeeScript.run.apply(CoffeeScript, param);
-          }
-        } else {
-          throw new Error("Could not load " + url);
-        }
-        if (callback) {
-          return callback(param);
-        }
-      }
-    };
-    return xhr.send(null);
-  };
-
-  runScripts = function() {
-    var coffees, coffeetypes, execute, i, index, s, script, scripts, _fn, _i, _len;
-    scripts = window.document.getElementsByTagName('script');
-    coffeetypes = ['text/coffeescript', 'text/literate-coffeescript'];
-    coffees = (function() {
-      var _i, _len, _ref, _results;
-      _results = [];
-      for (_i = 0, _len = scripts.length; _i < _len; _i++) {
-        s = scripts[_i];
-        if (_ref = s.type, __indexOf.call(coffeetypes, _ref) >= 0) {
-          _results.push(s);
-        }
-      }
-      return _results;
-    })();
-    index = 0;
-    execute = function() {
-      var param;
-      param = coffees[index];
-      if (param instanceof Array) {
-        CoffeeScript.run.apply(CoffeeScript, param);
-        index++;
-        return execute();
-      }
-    };
-    _fn = function(script, i) {
-      var options;
-      options = {
-        literate: script.type === coffeetypes[1]
-      };
-      if (script.src) {
-        return CoffeeScript.load(script.src, function(param) {
-          coffees[i] = param;
-          return execute();
-        }, options, true);
-      } else {
-        options.sourceFiles = ['embedded'];
-        return coffees[i] = [script.innerHTML, options];
-      }
-    };
-    for (i = _i = 0, _len = coffees.length; _i < _len; i = ++_i) {
-      script = coffees[i];
-      _fn(script, i);
-    }
-    return execute();
-  };
-
-  if (window.addEventListener) {
-    window.addEventListener('DOMContentLoaded', runScripts, false);
-  } else {
-    window.attachEvent('onload', runScripts);
-  }
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/cake.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/cake.js
deleted file mode 100644 (file)
index 94ecd4c..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(function() {
-  var CoffeeScript, cakefileDirectory, fatalError, fs, helpers, missingTask, oparse, options, optparse, path, printTasks, switches, tasks;
-
-  fs = require('fs');
-
-  path = require('path');
-
-  helpers = require('./helpers');
-
-  optparse = require('./optparse');
-
-  CoffeeScript = require('./coffee-script');
-
-  CoffeeScript.register();
-
-  tasks = {};
-
-  options = {};
-
-  switches = [];
-
-  oparse = null;
-
-  helpers.extend(global, {
-    task: function(name, description, action) {
-      var _ref;
-      if (!action) {
-        _ref = [description, action], action = _ref[0], description = _ref[1];
-      }
-      return tasks[name] = {
-        name: name,
-        description: description,
-        action: action
-      };
-    },
-    option: function(letter, flag, description) {
-      return switches.push([letter, flag, description]);
-    },
-    invoke: function(name) {
-      if (!tasks[name]) {
-        missingTask(name);
-      }
-      return tasks[name].action(options);
-    }
-  });
-
-  exports.run = function() {
-    var arg, args, e, _i, _len, _ref, _results;
-    global.__originalDirname = fs.realpathSync('.');
-    process.chdir(cakefileDirectory(__originalDirname));
-    args = process.argv.slice(2);
-    CoffeeScript.run(fs.readFileSync('Cakefile').toString(), {
-      filename: 'Cakefile'
-    });
-    oparse = new optparse.OptionParser(switches);
-    if (!args.length) {
-      return printTasks();
-    }
-    try {
-      options = oparse.parse(args);
-    } catch (_error) {
-      e = _error;
-      return fatalError("" + e);
-    }
-    _ref = options["arguments"];
-    _results = [];
-    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-      arg = _ref[_i];
-      _results.push(invoke(arg));
-    }
-    return _results;
-  };
-
-  printTasks = function() {
-    var cakefilePath, desc, name, relative, spaces, task;
-    relative = path.relative || path.resolve;
-    cakefilePath = path.join(relative(__originalDirname, process.cwd()), 'Cakefile');
-    console.log("" + cakefilePath + " defines the following tasks:\n");
-    for (name in tasks) {
-      task = tasks[name];
-      spaces = 20 - name.length;
-      spaces = spaces > 0 ? Array(spaces + 1).join(' ') : '';
-      desc = task.description ? "# " + task.description : '';
-      console.log("cake " + name + spaces + " " + desc);
-    }
-    if (switches.length) {
-      return console.log(oparse.help());
-    }
-  };
-
-  fatalError = function(message) {
-    console.error(message + '\n');
-    console.log('To see a list of all tasks/options, run "cake"');
-    return process.exit(1);
-  };
-
-  missingTask = function(task) {
-    return fatalError("No such task: " + task);
-  };
-
-  cakefileDirectory = function(dir) {
-    var parent;
-    if (fs.existsSync(path.join(dir, 'Cakefile'))) {
-      return dir;
-    }
-    parent = path.normalize(path.join(dir, '..'));
-    if (parent !== dir) {
-      return cakefileDirectory(parent);
-    }
-    throw new Error("Cakefile not found in " + (process.cwd()));
-  };
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/coffee-script.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/coffee-script.js
deleted file mode 100644 (file)
index 9061c7e..0000000
+++ /dev/null
@@ -1,347 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(function() {
-  var Lexer, SourceMap, compile, ext, formatSourcePosition, fs, getSourceMap, helpers, lexer, parser, path, sourceMaps, vm, withPrettyErrors, _base, _i, _len, _ref,
-    __hasProp = {}.hasOwnProperty,
-    __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
-  fs = require('fs');
-
-  vm = require('vm');
-
-  path = require('path');
-
-  Lexer = require('./lexer').Lexer;
-
-  parser = require('./parser').parser;
-
-  helpers = require('./helpers');
-
-  SourceMap = require('./sourcemap');
-
-  exports.VERSION = '1.8.0';
-
-  exports.FILE_EXTENSIONS = ['.coffee', '.litcoffee', '.coffee.md'];
-
-  exports.helpers = helpers;
-
-  withPrettyErrors = function(fn) {
-    return function(code, options) {
-      var err;
-      if (options == null) {
-        options = {};
-      }
-      try {
-        return fn.call(this, code, options);
-      } catch (_error) {
-        err = _error;
-        throw helpers.updateSyntaxError(err, code, options.filename);
-      }
-    };
-  };
-
-  exports.compile = compile = withPrettyErrors(function(code, options) {
-    var answer, currentColumn, currentLine, extend, fragment, fragments, header, js, map, merge, newLines, _i, _len;
-    merge = helpers.merge, extend = helpers.extend;
-    options = extend({}, options);
-    if (options.sourceMap) {
-      map = new SourceMap;
-    }
-    fragments = parser.parse(lexer.tokenize(code, options)).compileToFragments(options);
-    currentLine = 0;
-    if (options.header) {
-      currentLine += 1;
-    }
-    if (options.shiftLine) {
-      currentLine += 1;
-    }
-    currentColumn = 0;
-    js = "";
-    for (_i = 0, _len = fragments.length; _i < _len; _i++) {
-      fragment = fragments[_i];
-      if (options.sourceMap) {
-        if (fragment.locationData) {
-          map.add([fragment.locationData.first_line, fragment.locationData.first_column], [currentLine, currentColumn], {
-            noReplace: true
-          });
-        }
-        newLines = helpers.count(fragment.code, "\n");
-        currentLine += newLines;
-        if (newLines) {
-          currentColumn = fragment.code.length - (fragment.code.lastIndexOf("\n") + 1);
-        } else {
-          currentColumn += fragment.code.length;
-        }
-      }
-      js += fragment.code;
-    }
-    if (options.header) {
-      header = "Generated by CoffeeScript " + this.VERSION;
-      js = "// " + header + "\n" + js;
-    }
-    if (options.sourceMap) {
-      answer = {
-        js: js
-      };
-      answer.sourceMap = map;
-      answer.v3SourceMap = map.generate(options, code);
-      return answer;
-    } else {
-      return js;
-    }
-  });
-
-  exports.tokens = withPrettyErrors(function(code, options) {
-    return lexer.tokenize(code, options);
-  });
-
-  exports.nodes = withPrettyErrors(function(source, options) {
-    if (typeof source === 'string') {
-      return parser.parse(lexer.tokenize(source, options));
-    } else {
-      return parser.parse(source);
-    }
-  });
-
-  exports.run = function(code, options) {
-    var answer, dir, mainModule, _ref;
-    if (options == null) {
-      options = {};
-    }
-    mainModule = require.main;
-    mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : '.';
-    mainModule.moduleCache && (mainModule.moduleCache = {});
-    dir = options.filename ? path.dirname(fs.realpathSync(options.filename)) : fs.realpathSync('.');
-    mainModule.paths = require('module')._nodeModulePaths(dir);
-    if (!helpers.isCoffee(mainModule.filename) || require.extensions) {
-      answer = compile(code, options);
-      code = (_ref = answer.js) != null ? _ref : answer;
-    }
-    return mainModule._compile(code, mainModule.filename);
-  };
-
-  exports["eval"] = function(code, options) {
-    var Module, Script, js, k, o, r, sandbox, v, _i, _len, _module, _ref, _ref1, _require;
-    if (options == null) {
-      options = {};
-    }
-    if (!(code = code.trim())) {
-      return;
-    }
-    Script = vm.Script;
-    if (Script) {
-      if (options.sandbox != null) {
-        if (options.sandbox instanceof Script.createContext().constructor) {
-          sandbox = options.sandbox;
-        } else {
-          sandbox = Script.createContext();
-          _ref = options.sandbox;
-          for (k in _ref) {
-            if (!__hasProp.call(_ref, k)) continue;
-            v = _ref[k];
-            sandbox[k] = v;
-          }
-        }
-        sandbox.global = sandbox.root = sandbox.GLOBAL = sandbox;
-      } else {
-        sandbox = global;
-      }
-      sandbox.__filename = options.filename || 'eval';
-      sandbox.__dirname = path.dirname(sandbox.__filename);
-      if (!(sandbox !== global || sandbox.module || sandbox.require)) {
-        Module = require('module');
-        sandbox.module = _module = new Module(options.modulename || 'eval');
-        sandbox.require = _require = function(path) {
-          return Module._load(path, _module, true);
-        };
-        _module.filename = sandbox.__filename;
-        _ref1 = Object.getOwnPropertyNames(require);
-        for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
-          r = _ref1[_i];
-          if (r !== 'paths') {
-            _require[r] = require[r];
-          }
-        }
-        _require.paths = _module.paths = Module._nodeModulePaths(process.cwd());
-        _require.resolve = function(request) {
-          return Module._resolveFilename(request, _module);
-        };
-      }
-    }
-    o = {};
-    for (k in options) {
-      if (!__hasProp.call(options, k)) continue;
-      v = options[k];
-      o[k] = v;
-    }
-    o.bare = true;
-    js = compile(code, o);
-    if (sandbox === global) {
-      return vm.runInThisContext(js);
-    } else {
-      return vm.runInContext(js, sandbox);
-    }
-  };
-
-  exports.register = function() {
-    return require('./register');
-  };
-
-  if (require.extensions) {
-    _ref = this.FILE_EXTENSIONS;
-    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-      ext = _ref[_i];
-      if ((_base = require.extensions)[ext] == null) {
-        _base[ext] = function() {
-          throw new Error("Use CoffeeScript.register() or require the coffee-script/register module to require " + ext + " files.");
-        };
-      }
-    }
-  }
-
-  exports._compileFile = function(filename, sourceMap) {
-    var answer, err, raw, stripped;
-    if (sourceMap == null) {
-      sourceMap = false;
-    }
-    raw = fs.readFileSync(filename, 'utf8');
-    stripped = raw.charCodeAt(0) === 0xFEFF ? raw.substring(1) : raw;
-    try {
-      answer = compile(stripped, {
-        filename: filename,
-        sourceMap: sourceMap,
-        literate: helpers.isLiterate(filename)
-      });
-    } catch (_error) {
-      err = _error;
-      throw helpers.updateSyntaxError(err, stripped, filename);
-    }
-    return answer;
-  };
-
-  lexer = new Lexer;
-
-  parser.lexer = {
-    lex: function() {
-      var tag, token;
-      token = this.tokens[this.pos++];
-      if (token) {
-        tag = token[0], this.yytext = token[1], this.yylloc = token[2];
-        this.errorToken = token.origin || token;
-        this.yylineno = this.yylloc.first_line;
-      } else {
-        tag = '';
-      }
-      return tag;
-    },
-    setInput: function(tokens) {
-      this.tokens = tokens;
-      return this.pos = 0;
-    },
-    upcomingInput: function() {
-      return "";
-    }
-  };
-
-  parser.yy = require('./nodes');
-
-  parser.yy.parseError = function(message, _arg) {
-    var errorLoc, errorTag, errorText, errorToken, token, tokens, _ref1;
-    token = _arg.token;
-    _ref1 = parser.lexer, errorToken = _ref1.errorToken, tokens = _ref1.tokens;
-    errorTag = errorToken[0], errorText = errorToken[1], errorLoc = errorToken[2];
-    errorText = errorToken === tokens[tokens.length - 1] ? 'end of input' : errorTag === 'INDENT' || errorTag === 'OUTDENT' ? 'indentation' : helpers.nameWhitespaceCharacter(errorText);
-    return helpers.throwSyntaxError("unexpected " + errorText, errorLoc);
-  };
-
-  formatSourcePosition = function(frame, getSourceMapping) {
-    var as, column, fileLocation, fileName, functionName, isConstructor, isMethodCall, line, methodName, source, tp, typeName;
-    fileName = void 0;
-    fileLocation = '';
-    if (frame.isNative()) {
-      fileLocation = "native";
-    } else {
-      if (frame.isEval()) {
-        fileName = frame.getScriptNameOrSourceURL();
-        if (!fileName) {
-          fileLocation = "" + (frame.getEvalOrigin()) + ", ";
-        }
-      } else {
-        fileName = frame.getFileName();
-      }
-      fileName || (fileName = "<anonymous>");
-      line = frame.getLineNumber();
-      column = frame.getColumnNumber();
-      source = getSourceMapping(fileName, line, column);
-      fileLocation = source ? "" + fileName + ":" + source[0] + ":" + source[1] : "" + fileName + ":" + line + ":" + column;
-    }
-    functionName = frame.getFunctionName();
-    isConstructor = frame.isConstructor();
-    isMethodCall = !(frame.isToplevel() || isConstructor);
-    if (isMethodCall) {
-      methodName = frame.getMethodName();
-      typeName = frame.getTypeName();
-      if (functionName) {
-        tp = as = '';
-        if (typeName && functionName.indexOf(typeName)) {
-          tp = "" + typeName + ".";
-        }
-        if (methodName && functionName.indexOf("." + methodName) !== functionName.length - methodName.length - 1) {
-          as = " [as " + methodName + "]";
-        }
-        return "" + tp + functionName + as + " (" + fileLocation + ")";
-      } else {
-        return "" + typeName + "." + (methodName || '<anonymous>') + " (" + fileLocation + ")";
-      }
-    } else if (isConstructor) {
-      return "new " + (functionName || '<anonymous>') + " (" + fileLocation + ")";
-    } else if (functionName) {
-      return "" + functionName + " (" + fileLocation + ")";
-    } else {
-      return fileLocation;
-    }
-  };
-
-  sourceMaps = {};
-
-  getSourceMap = function(filename) {
-    var answer, _ref1;
-    if (sourceMaps[filename]) {
-      return sourceMaps[filename];
-    }
-    if (_ref1 = path != null ? path.extname(filename) : void 0, __indexOf.call(exports.FILE_EXTENSIONS, _ref1) < 0) {
-      return;
-    }
-    answer = exports._compileFile(filename, true);
-    return sourceMaps[filename] = answer.sourceMap;
-  };
-
-  Error.prepareStackTrace = function(err, stack) {
-    var frame, frames, getSourceMapping;
-    getSourceMapping = function(filename, line, column) {
-      var answer, sourceMap;
-      sourceMap = getSourceMap(filename);
-      if (sourceMap) {
-        answer = sourceMap.sourceLocation([line - 1, column - 1]);
-      }
-      if (answer) {
-        return [answer[0] + 1, answer[1] + 1];
-      } else {
-        return null;
-      }
-    };
-    frames = (function() {
-      var _j, _len1, _results;
-      _results = [];
-      for (_j = 0, _len1 = stack.length; _j < _len1; _j++) {
-        frame = stack[_j];
-        if (frame.getFunction() === exports.run) {
-          break;
-        }
-        _results.push("  at " + (formatSourcePosition(frame, getSourceMapping)));
-      }
-      return _results;
-    })();
-    return "" + (err.toString()) + "\n" + (frames.join('\n')) + "\n";
-  };
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/command.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/command.js
deleted file mode 100644 (file)
index 357653b..0000000
+++ /dev/null
@@ -1,572 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(function() {
-  var BANNER, CoffeeScript, EventEmitter, SWITCHES, compileJoin, compileOptions, compilePath, compileScript, compileStdio, exec, findDirectoryIndex, forkNode, fs, helpers, hidden, joinTimeout, mkdirp, notSources, optionParser, optparse, opts, outputPath, parseOptions, path, printLine, printTokens, printWarn, removeSource, removeSourceDir, silentUnlink, sourceCode, sources, spawn, timeLog, usage, useWinPathSep, version, wait, watch, watchDir, watchedDirs, writeJs, _ref,
-    __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
-  fs = require('fs');
-
-  path = require('path');
-
-  helpers = require('./helpers');
-
-  optparse = require('./optparse');
-
-  CoffeeScript = require('./coffee-script');
-
-  mkdirp = require('mkdirp');
-
-  _ref = require('child_process'), spawn = _ref.spawn, exec = _ref.exec;
-
-  EventEmitter = require('events').EventEmitter;
-
-  useWinPathSep = path.sep === '\\';
-
-  helpers.extend(CoffeeScript, new EventEmitter);
-
-  printLine = function(line) {
-    return process.stdout.write(line + '\n');
-  };
-
-  printWarn = function(line) {
-    return process.stderr.write(line + '\n');
-  };
-
-  hidden = function(file) {
-    return /^\.|~$/.test(file);
-  };
-
-  BANNER = 'Usage: coffee [options] path/to/script.coffee -- [args]\n\nIf called without options, `coffee` will run your script.';
-
-  SWITCHES = [['-b', '--bare', 'compile without a top-level function wrapper'], ['-c', '--compile', 'compile to JavaScript and save as .js files'], ['-e', '--eval', 'pass a string from the command line as input'], ['-h', '--help', 'display this help message'], ['-i', '--interactive', 'run an interactive CoffeeScript REPL'], ['-j', '--join [FILE]', 'concatenate the source CoffeeScript before compiling'], ['-m', '--map', 'generate source map and save as .js.map files'], ['-n', '--nodes', 'print out the parse tree that the parser produces'], ['--nodejs [ARGS]', 'pass options directly to the "node" binary'], ['--no-header', 'suppress the "Generated by" header'], ['-o', '--output [DIR]', 'set the output directory for compiled JavaScript'], ['-p', '--print', 'print out the compiled JavaScript'], ['-s', '--stdio', 'listen for and compile scripts over stdio'], ['-l', '--literate', 'treat stdio as literate style coffee-script'], ['-t', '--tokens', 'print out the tokens that the lexer/rewriter produce'], ['-v', '--version', 'display the version number'], ['-w', '--watch', 'watch scripts for changes and rerun commands']];
-
-  opts = {};
-
-  sources = [];
-
-  sourceCode = [];
-
-  notSources = {};
-
-  watchedDirs = {};
-
-  optionParser = null;
-
-  exports.run = function() {
-    var literals, replCliOpts, source, _i, _len, _ref1, _results;
-    parseOptions();
-    replCliOpts = {
-      useGlobal: true
-    };
-    if (opts.nodejs) {
-      return forkNode();
-    }
-    if (opts.help) {
-      return usage();
-    }
-    if (opts.version) {
-      return version();
-    }
-    if (opts.interactive) {
-      return require('./repl').start(replCliOpts);
-    }
-    if (opts.stdio) {
-      return compileStdio();
-    }
-    if (opts["eval"]) {
-      return compileScript(null, opts["arguments"][0]);
-    }
-    if (!opts["arguments"].length) {
-      return require('./repl').start(replCliOpts);
-    }
-    literals = opts.run ? opts["arguments"].splice(1) : [];
-    process.argv = process.argv.slice(0, 2).concat(literals);
-    process.argv[0] = 'coffee';
-    if (opts.output) {
-      opts.output = path.resolve(opts.output);
-    }
-    if (opts.join) {
-      opts.join = path.resolve(opts.join);
-      console.error('\nThe --join option is deprecated and will be removed in a future version.\n\nIf for some reason it\'s necessary to share local variables between files,\nreplace...\n\n    $ coffee --compile --join bundle.js -- a.coffee b.coffee c.coffee\n\nwith...\n\n    $ cat a.coffee b.coffee c.coffee | coffee --compile --stdio > bundle.js\n');
-    }
-    _ref1 = opts["arguments"];
-    _results = [];
-    for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
-      source = _ref1[_i];
-      source = path.resolve(source);
-      _results.push(compilePath(source, true, source));
-    }
-    return _results;
-  };
-
-  compilePath = function(source, topLevel, base) {
-    var code, err, file, files, stats, _i, _len, _results;
-    if (__indexOf.call(sources, source) >= 0 || watchedDirs[source] || !topLevel && (notSources[source] || hidden(source))) {
-      return;
-    }
-    try {
-      stats = fs.statSync(source);
-    } catch (_error) {
-      err = _error;
-      if (err.code === 'ENOENT') {
-        console.error("File not found: " + source);
-        process.exit(1);
-      }
-      throw err;
-    }
-    if (stats.isDirectory()) {
-      if (path.basename(source) === 'node_modules') {
-        notSources[source] = true;
-        return;
-      }
-      if (opts.run) {
-        compilePath(findDirectoryIndex(source), topLevel, base);
-        return;
-      }
-      if (opts.watch) {
-        watchDir(source, base);
-      }
-      try {
-        files = fs.readdirSync(source);
-      } catch (_error) {
-        err = _error;
-        if (err.code === 'ENOENT') {
-          return;
-        } else {
-          throw err;
-        }
-      }
-      _results = [];
-      for (_i = 0, _len = files.length; _i < _len; _i++) {
-        file = files[_i];
-        _results.push(compilePath(path.join(source, file), false, base));
-      }
-      return _results;
-    } else if (topLevel || helpers.isCoffee(source)) {
-      sources.push(source);
-      sourceCode.push(null);
-      delete notSources[source];
-      if (opts.watch) {
-        watch(source, base);
-      }
-      try {
-        code = fs.readFileSync(source);
-      } catch (_error) {
-        err = _error;
-        if (err.code === 'ENOENT') {
-          return;
-        } else {
-          throw err;
-        }
-      }
-      return compileScript(source, code.toString(), base);
-    } else {
-      return notSources[source] = true;
-    }
-  };
-
-  findDirectoryIndex = function(source) {
-    var err, ext, index, _i, _len, _ref1;
-    _ref1 = CoffeeScript.FILE_EXTENSIONS;
-    for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
-      ext = _ref1[_i];
-      index = path.join(source, "index" + ext);
-      try {
-        if ((fs.statSync(index)).isFile()) {
-          return index;
-        }
-      } catch (_error) {
-        err = _error;
-        if (err.code !== 'ENOENT') {
-          throw err;
-        }
-      }
-    }
-    console.error("Missing index.coffee or index.litcoffee in " + source);
-    return process.exit(1);
-  };
-
-  compileScript = function(file, input, base) {
-    var compiled, err, message, o, options, t, task;
-    if (base == null) {
-      base = null;
-    }
-    o = opts;
-    options = compileOptions(file, base);
-    try {
-      t = task = {
-        file: file,
-        input: input,
-        options: options
-      };
-      CoffeeScript.emit('compile', task);
-      if (o.tokens) {
-        return printTokens(CoffeeScript.tokens(t.input, t.options));
-      } else if (o.nodes) {
-        return printLine(CoffeeScript.nodes(t.input, t.options).toString().trim());
-      } else if (o.run) {
-        CoffeeScript.register();
-        return CoffeeScript.run(t.input, t.options);
-      } else if (o.join && t.file !== o.join) {
-        if (helpers.isLiterate(file)) {
-          t.input = helpers.invertLiterate(t.input);
-        }
-        sourceCode[sources.indexOf(t.file)] = t.input;
-        return compileJoin();
-      } else {
-        compiled = CoffeeScript.compile(t.input, t.options);
-        t.output = compiled;
-        if (o.map) {
-          t.output = compiled.js;
-          t.sourceMap = compiled.v3SourceMap;
-        }
-        CoffeeScript.emit('success', task);
-        if (o.print) {
-          return printLine(t.output.trim());
-        } else if (o.compile || o.map) {
-          return writeJs(base, t.file, t.output, options.jsPath, t.sourceMap);
-        }
-      }
-    } catch (_error) {
-      err = _error;
-      CoffeeScript.emit('failure', err, task);
-      if (CoffeeScript.listeners('failure').length) {
-        return;
-      }
-      message = err.stack || ("" + err);
-      if (o.watch) {
-        return printLine(message + '\x07');
-      } else {
-        printWarn(message);
-        return process.exit(1);
-      }
-    }
-  };
-
-  compileStdio = function() {
-    var code, stdin;
-    code = '';
-    stdin = process.openStdin();
-    stdin.on('data', function(buffer) {
-      if (buffer) {
-        return code += buffer.toString();
-      }
-    });
-    return stdin.on('end', function() {
-      return compileScript(null, code);
-    });
-  };
-
-  joinTimeout = null;
-
-  compileJoin = function() {
-    if (!opts.join) {
-      return;
-    }
-    if (!sourceCode.some(function(code) {
-      return code === null;
-    })) {
-      clearTimeout(joinTimeout);
-      return joinTimeout = wait(100, function() {
-        return compileScript(opts.join, sourceCode.join('\n'), opts.join);
-      });
-    }
-  };
-
-  watch = function(source, base) {
-    var compile, compileTimeout, err, prevStats, rewatch, startWatcher, watchErr, watcher;
-    watcher = null;
-    prevStats = null;
-    compileTimeout = null;
-    watchErr = function(err) {
-      if (err.code !== 'ENOENT') {
-        throw err;
-      }
-      if (__indexOf.call(sources, source) < 0) {
-        return;
-      }
-      try {
-        rewatch();
-        return compile();
-      } catch (_error) {
-        removeSource(source, base);
-        return compileJoin();
-      }
-    };
-    compile = function() {
-      clearTimeout(compileTimeout);
-      return compileTimeout = wait(25, function() {
-        return fs.stat(source, function(err, stats) {
-          if (err) {
-            return watchErr(err);
-          }
-          if (prevStats && stats.size === prevStats.size && stats.mtime.getTime() === prevStats.mtime.getTime()) {
-            return rewatch();
-          }
-          prevStats = stats;
-          return fs.readFile(source, function(err, code) {
-            if (err) {
-              return watchErr(err);
-            }
-            compileScript(source, code.toString(), base);
-            return rewatch();
-          });
-        });
-      });
-    };
-    startWatcher = function() {
-      return watcher = fs.watch(source).on('change', compile).on('error', function(err) {
-        if (err.code !== 'EPERM') {
-          throw err;
-        }
-        return removeSource(source, base);
-      });
-    };
-    rewatch = function() {
-      if (watcher != null) {
-        watcher.close();
-      }
-      return startWatcher();
-    };
-    try {
-      return startWatcher();
-    } catch (_error) {
-      err = _error;
-      return watchErr(err);
-    }
-  };
-
-  watchDir = function(source, base) {
-    var err, readdirTimeout, startWatcher, stopWatcher, watcher;
-    watcher = null;
-    readdirTimeout = null;
-    startWatcher = function() {
-      return watcher = fs.watch(source).on('error', function(err) {
-        if (err.code !== 'EPERM') {
-          throw err;
-        }
-        return stopWatcher();
-      }).on('change', function() {
-        clearTimeout(readdirTimeout);
-        return readdirTimeout = wait(25, function() {
-          var err, file, files, _i, _len, _results;
-          try {
-            files = fs.readdirSync(source);
-          } catch (_error) {
-            err = _error;
-            if (err.code !== 'ENOENT') {
-              throw err;
-            }
-            return stopWatcher();
-          }
-          _results = [];
-          for (_i = 0, _len = files.length; _i < _len; _i++) {
-            file = files[_i];
-            _results.push(compilePath(path.join(source, file), false, base));
-          }
-          return _results;
-        });
-      });
-    };
-    stopWatcher = function() {
-      watcher.close();
-      return removeSourceDir(source, base);
-    };
-    watchedDirs[source] = true;
-    try {
-      return startWatcher();
-    } catch (_error) {
-      err = _error;
-      if (err.code !== 'ENOENT') {
-        throw err;
-      }
-    }
-  };
-
-  removeSourceDir = function(source, base) {
-    var file, sourcesChanged, _i, _len;
-    delete watchedDirs[source];
-    sourcesChanged = false;
-    for (_i = 0, _len = sources.length; _i < _len; _i++) {
-      file = sources[_i];
-      if (!(source === path.dirname(file))) {
-        continue;
-      }
-      removeSource(file, base);
-      sourcesChanged = true;
-    }
-    if (sourcesChanged) {
-      return compileJoin();
-    }
-  };
-
-  removeSource = function(source, base) {
-    var index;
-    index = sources.indexOf(source);
-    sources.splice(index, 1);
-    sourceCode.splice(index, 1);
-    if (!opts.join) {
-      silentUnlink(outputPath(source, base));
-      silentUnlink(outputPath(source, base, '.js.map'));
-      return timeLog("removed " + source);
-    }
-  };
-
-  silentUnlink = function(path) {
-    var err, _ref1;
-    try {
-      return fs.unlinkSync(path);
-    } catch (_error) {
-      err = _error;
-      if ((_ref1 = err.code) !== 'ENOENT' && _ref1 !== 'EPERM') {
-        throw err;
-      }
-    }
-  };
-
-  outputPath = function(source, base, extension) {
-    var basename, dir, srcDir;
-    if (extension == null) {
-      extension = ".js";
-    }
-    basename = helpers.baseFileName(source, true, useWinPathSep);
-    srcDir = path.dirname(source);
-    if (!opts.output) {
-      dir = srcDir;
-    } else if (source === base) {
-      dir = opts.output;
-    } else {
-      dir = path.join(opts.output, path.relative(base, srcDir));
-    }
-    return path.join(dir, basename + extension);
-  };
-
-  writeJs = function(base, sourcePath, js, jsPath, generatedSourceMap) {
-    var compile, jsDir, sourceMapPath;
-    if (generatedSourceMap == null) {
-      generatedSourceMap = null;
-    }
-    sourceMapPath = outputPath(sourcePath, base, ".js.map");
-    jsDir = path.dirname(jsPath);
-    compile = function() {
-      if (opts.compile) {
-        if (js.length <= 0) {
-          js = ' ';
-        }
-        if (generatedSourceMap) {
-          js = "" + js + "\n//# sourceMappingURL=" + (helpers.baseFileName(sourceMapPath, false, useWinPathSep)) + "\n";
-        }
-        fs.writeFile(jsPath, js, function(err) {
-          if (err) {
-            printLine(err.message);
-            return process.exit(1);
-          } else if (opts.compile && opts.watch) {
-            return timeLog("compiled " + sourcePath);
-          }
-        });
-      }
-      if (generatedSourceMap) {
-        return fs.writeFile(sourceMapPath, generatedSourceMap, function(err) {
-          if (err) {
-            printLine("Could not write source map: " + err.message);
-            return process.exit(1);
-          }
-        });
-      }
-    };
-    return fs.exists(jsDir, function(itExists) {
-      if (itExists) {
-        return compile();
-      } else {
-        return mkdirp(jsDir, compile);
-      }
-    });
-  };
-
-  wait = function(milliseconds, func) {
-    return setTimeout(func, milliseconds);
-  };
-
-  timeLog = function(message) {
-    return console.log("" + ((new Date).toLocaleTimeString()) + " - " + message);
-  };
-
-  printTokens = function(tokens) {
-    var strings, tag, token, value;
-    strings = (function() {
-      var _i, _len, _results;
-      _results = [];
-      for (_i = 0, _len = tokens.length; _i < _len; _i++) {
-        token = tokens[_i];
-        tag = token[0];
-        value = token[1].toString().replace(/\n/, '\\n');
-        _results.push("[" + tag + " " + value + "]");
-      }
-      return _results;
-    })();
-    return printLine(strings.join(' '));
-  };
-
-  parseOptions = function() {
-    var o;
-    optionParser = new optparse.OptionParser(SWITCHES, BANNER);
-    o = opts = optionParser.parse(process.argv.slice(2));
-    o.compile || (o.compile = !!o.output);
-    o.run = !(o.compile || o.print || o.map);
-    return o.print = !!(o.print || (o["eval"] || o.stdio && o.compile));
-  };
-
-  compileOptions = function(filename, base) {
-    var answer, cwd, jsDir, jsPath;
-    answer = {
-      filename: filename,
-      literate: opts.literate || helpers.isLiterate(filename),
-      bare: opts.bare,
-      header: opts.compile && !opts['no-header'],
-      sourceMap: opts.map
-    };
-    if (filename) {
-      if (base) {
-        cwd = process.cwd();
-        jsPath = outputPath(filename, base);
-        jsDir = path.dirname(jsPath);
-        answer = helpers.merge(answer, {
-          jsPath: jsPath,
-          sourceRoot: path.relative(jsDir, cwd),
-          sourceFiles: [path.relative(cwd, filename)],
-          generatedFile: helpers.baseFileName(jsPath, false, useWinPathSep)
-        });
-      } else {
-        answer = helpers.merge(answer, {
-          sourceRoot: "",
-          sourceFiles: [helpers.baseFileName(filename, false, useWinPathSep)],
-          generatedFile: helpers.baseFileName(filename, true, useWinPathSep) + ".js"
-        });
-      }
-    }
-    return answer;
-  };
-
-  forkNode = function() {
-    var args, nodeArgs, p;
-    nodeArgs = opts.nodejs.split(/\s+/);
-    args = process.argv.slice(1);
-    args.splice(args.indexOf('--nodejs'), 2);
-    p = spawn(process.execPath, nodeArgs.concat(args), {
-      cwd: process.cwd(),
-      env: process.env,
-      customFds: [0, 1, 2]
-    });
-    return p.on('exit', function(code) {
-      return process.exit(code);
-    });
-  };
-
-  usage = function() {
-    return printLine((new optparse.OptionParser(SWITCHES, BANNER)).help());
-  };
-
-  version = function() {
-    return printLine("CoffeeScript version " + CoffeeScript.VERSION);
-  };
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/grammar.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/grammar.js
deleted file mode 100644 (file)
index cfcab24..0000000
+++ /dev/null
@@ -1,631 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(function() {
-  var Parser, alt, alternatives, grammar, name, o, operators, token, tokens, unwrap;
-
-  Parser = require('jison').Parser;
-
-  unwrap = /^function\s*\(\)\s*\{\s*return\s*([\s\S]*);\s*\}/;
-
-  o = function(patternString, action, options) {
-    var addLocationDataFn, match, patternCount;
-    patternString = patternString.replace(/\s{2,}/g, ' ');
-    patternCount = patternString.split(' ').length;
-    if (!action) {
-      return [patternString, '$$ = $1;', options];
-    }
-    action = (match = unwrap.exec(action)) ? match[1] : "(" + action + "())";
-    action = action.replace(/\bnew /g, '$&yy.');
-    action = action.replace(/\b(?:Block\.wrap|extend)\b/g, 'yy.$&');
-    addLocationDataFn = function(first, last) {
-      if (!last) {
-        return "yy.addLocationDataFn(@" + first + ")";
-      } else {
-        return "yy.addLocationDataFn(@" + first + ", @" + last + ")";
-      }
-    };
-    action = action.replace(/LOC\(([0-9]*)\)/g, addLocationDataFn('$1'));
-    action = action.replace(/LOC\(([0-9]*),\s*([0-9]*)\)/g, addLocationDataFn('$1', '$2'));
-    return [patternString, "$$ = " + (addLocationDataFn(1, patternCount)) + "(" + action + ");", options];
-  };
-
-  grammar = {
-    Root: [
-      o('', function() {
-        return new Block;
-      }), o('Body')
-    ],
-    Body: [
-      o('Line', function() {
-        return Block.wrap([$1]);
-      }), o('Body TERMINATOR Line', function() {
-        return $1.push($3);
-      }), o('Body TERMINATOR')
-    ],
-    Line: [o('Expression'), o('Statement')],
-    Statement: [
-      o('Return'), o('Comment'), o('STATEMENT', function() {
-        return new Literal($1);
-      })
-    ],
-    Expression: [o('Value'), o('Invocation'), o('Code'), o('Operation'), o('Assign'), o('If'), o('Try'), o('While'), o('For'), o('Switch'), o('Class'), o('Throw')],
-    Block: [
-      o('INDENT OUTDENT', function() {
-        return new Block;
-      }), o('INDENT Body OUTDENT', function() {
-        return $2;
-      })
-    ],
-    Identifier: [
-      o('IDENTIFIER', function() {
-        return new Literal($1);
-      })
-    ],
-    AlphaNumeric: [
-      o('NUMBER', function() {
-        return new Literal($1);
-      }), o('STRING', function() {
-        return new Literal($1);
-      })
-    ],
-    Literal: [
-      o('AlphaNumeric'), o('JS', function() {
-        return new Literal($1);
-      }), o('REGEX', function() {
-        return new Literal($1);
-      }), o('DEBUGGER', function() {
-        return new Literal($1);
-      }), o('UNDEFINED', function() {
-        return new Undefined;
-      }), o('NULL', function() {
-        return new Null;
-      }), o('BOOL', function() {
-        return new Bool($1);
-      })
-    ],
-    Assign: [
-      o('Assignable = Expression', function() {
-        return new Assign($1, $3);
-      }), o('Assignable = TERMINATOR Expression', function() {
-        return new Assign($1, $4);
-      }), o('Assignable = INDENT Expression OUTDENT', function() {
-        return new Assign($1, $4);
-      })
-    ],
-    AssignObj: [
-      o('ObjAssignable', function() {
-        return new Value($1);
-      }), o('ObjAssignable : Expression', function() {
-        return new Assign(LOC(1)(new Value($1)), $3, 'object');
-      }), o('ObjAssignable : INDENT Expression OUTDENT', function() {
-        return new Assign(LOC(1)(new Value($1)), $4, 'object');
-      }), o('Comment')
-    ],
-    ObjAssignable: [o('Identifier'), o('AlphaNumeric'), o('ThisProperty')],
-    Return: [
-      o('RETURN Expression', function() {
-        return new Return($2);
-      }), o('RETURN', function() {
-        return new Return;
-      })
-    ],
-    Comment: [
-      o('HERECOMMENT', function() {
-        return new Comment($1);
-      })
-    ],
-    Code: [
-      o('PARAM_START ParamList PARAM_END FuncGlyph Block', function() {
-        return new Code($2, $5, $4);
-      }), o('FuncGlyph Block', function() {
-        return new Code([], $2, $1);
-      })
-    ],
-    FuncGlyph: [
-      o('->', function() {
-        return 'func';
-      }), o('=>', function() {
-        return 'boundfunc';
-      })
-    ],
-    OptComma: [o(''), o(',')],
-    ParamList: [
-      o('', function() {
-        return [];
-      }), o('Param', function() {
-        return [$1];
-      }), o('ParamList , Param', function() {
-        return $1.concat($3);
-      }), o('ParamList OptComma TERMINATOR Param', function() {
-        return $1.concat($4);
-      }), o('ParamList OptComma INDENT ParamList OptComma OUTDENT', function() {
-        return $1.concat($4);
-      })
-    ],
-    Param: [
-      o('ParamVar', function() {
-        return new Param($1);
-      }), o('ParamVar ...', function() {
-        return new Param($1, null, true);
-      }), o('ParamVar = Expression', function() {
-        return new Param($1, $3);
-      }), o('...', function() {
-        return new Expansion;
-      })
-    ],
-    ParamVar: [o('Identifier'), o('ThisProperty'), o('Array'), o('Object')],
-    Splat: [
-      o('Expression ...', function() {
-        return new Splat($1);
-      })
-    ],
-    SimpleAssignable: [
-      o('Identifier', function() {
-        return new Value($1);
-      }), o('Value Accessor', function() {
-        return $1.add($2);
-      }), o('Invocation Accessor', function() {
-        return new Value($1, [].concat($2));
-      }), o('ThisProperty')
-    ],
-    Assignable: [
-      o('SimpleAssignable'), o('Array', function() {
-        return new Value($1);
-      }), o('Object', function() {
-        return new Value($1);
-      })
-    ],
-    Value: [
-      o('Assignable'), o('Literal', function() {
-        return new Value($1);
-      }), o('Parenthetical', function() {
-        return new Value($1);
-      }), o('Range', function() {
-        return new Value($1);
-      }), o('This')
-    ],
-    Accessor: [
-      o('.  Identifier', function() {
-        return new Access($2);
-      }), o('?. Identifier', function() {
-        return new Access($2, 'soak');
-      }), o(':: Identifier', function() {
-        return [LOC(1)(new Access(new Literal('prototype'))), LOC(2)(new Access($2))];
-      }), o('?:: Identifier', function() {
-        return [LOC(1)(new Access(new Literal('prototype'), 'soak')), LOC(2)(new Access($2))];
-      }), o('::', function() {
-        return new Access(new Literal('prototype'));
-      }), o('Index')
-    ],
-    Index: [
-      o('INDEX_START IndexValue INDEX_END', function() {
-        return $2;
-      }), o('INDEX_SOAK  Index', function() {
-        return extend($2, {
-          soak: true
-        });
-      })
-    ],
-    IndexValue: [
-      o('Expression', function() {
-        return new Index($1);
-      }), o('Slice', function() {
-        return new Slice($1);
-      })
-    ],
-    Object: [
-      o('{ AssignList OptComma }', function() {
-        return new Obj($2, $1.generated);
-      })
-    ],
-    AssignList: [
-      o('', function() {
-        return [];
-      }), o('AssignObj', function() {
-        return [$1];
-      }), o('AssignList , AssignObj', function() {
-        return $1.concat($3);
-      }), o('AssignList OptComma TERMINATOR AssignObj', function() {
-        return $1.concat($4);
-      }), o('AssignList OptComma INDENT AssignList OptComma OUTDENT', function() {
-        return $1.concat($4);
-      })
-    ],
-    Class: [
-      o('CLASS', function() {
-        return new Class;
-      }), o('CLASS Block', function() {
-        return new Class(null, null, $2);
-      }), o('CLASS EXTENDS Expression', function() {
-        return new Class(null, $3);
-      }), o('CLASS EXTENDS Expression Block', function() {
-        return new Class(null, $3, $4);
-      }), o('CLASS SimpleAssignable', function() {
-        return new Class($2);
-      }), o('CLASS SimpleAssignable Block', function() {
-        return new Class($2, null, $3);
-      }), o('CLASS SimpleAssignable EXTENDS Expression', function() {
-        return new Class($2, $4);
-      }), o('CLASS SimpleAssignable EXTENDS Expression Block', function() {
-        return new Class($2, $4, $5);
-      })
-    ],
-    Invocation: [
-      o('Value OptFuncExist Arguments', function() {
-        return new Call($1, $3, $2);
-      }), o('Invocation OptFuncExist Arguments', function() {
-        return new Call($1, $3, $2);
-      }), o('SUPER', function() {
-        return new Call('super', [new Splat(new Literal('arguments'))]);
-      }), o('SUPER Arguments', function() {
-        return new Call('super', $2);
-      })
-    ],
-    OptFuncExist: [
-      o('', function() {
-        return false;
-      }), o('FUNC_EXIST', function() {
-        return true;
-      })
-    ],
-    Arguments: [
-      o('CALL_START CALL_END', function() {
-        return [];
-      }), o('CALL_START ArgList OptComma CALL_END', function() {
-        return $2;
-      })
-    ],
-    This: [
-      o('THIS', function() {
-        return new Value(new Literal('this'));
-      }), o('@', function() {
-        return new Value(new Literal('this'));
-      })
-    ],
-    ThisProperty: [
-      o('@ Identifier', function() {
-        return new Value(LOC(1)(new Literal('this')), [LOC(2)(new Access($2))], 'this');
-      })
-    ],
-    Array: [
-      o('[ ]', function() {
-        return new Arr([]);
-      }), o('[ ArgList OptComma ]', function() {
-        return new Arr($2);
-      })
-    ],
-    RangeDots: [
-      o('..', function() {
-        return 'inclusive';
-      }), o('...', function() {
-        return 'exclusive';
-      })
-    ],
-    Range: [
-      o('[ Expression RangeDots Expression ]', function() {
-        return new Range($2, $4, $3);
-      })
-    ],
-    Slice: [
-      o('Expression RangeDots Expression', function() {
-        return new Range($1, $3, $2);
-      }), o('Expression RangeDots', function() {
-        return new Range($1, null, $2);
-      }), o('RangeDots Expression', function() {
-        return new Range(null, $2, $1);
-      }), o('RangeDots', function() {
-        return new Range(null, null, $1);
-      })
-    ],
-    ArgList: [
-      o('Arg', function() {
-        return [$1];
-      }), o('ArgList , Arg', function() {
-        return $1.concat($3);
-      }), o('ArgList OptComma TERMINATOR Arg', function() {
-        return $1.concat($4);
-      }), o('INDENT ArgList OptComma OUTDENT', function() {
-        return $2;
-      }), o('ArgList OptComma INDENT ArgList OptComma OUTDENT', function() {
-        return $1.concat($4);
-      })
-    ],
-    Arg: [
-      o('Expression'), o('Splat'), o('...', function() {
-        return new Expansion;
-      })
-    ],
-    SimpleArgs: [
-      o('Expression'), o('SimpleArgs , Expression', function() {
-        return [].concat($1, $3);
-      })
-    ],
-    Try: [
-      o('TRY Block', function() {
-        return new Try($2);
-      }), o('TRY Block Catch', function() {
-        return new Try($2, $3[0], $3[1]);
-      }), o('TRY Block FINALLY Block', function() {
-        return new Try($2, null, null, $4);
-      }), o('TRY Block Catch FINALLY Block', function() {
-        return new Try($2, $3[0], $3[1], $5);
-      })
-    ],
-    Catch: [
-      o('CATCH Identifier Block', function() {
-        return [$2, $3];
-      }), o('CATCH Object Block', function() {
-        return [LOC(2)(new Value($2)), $3];
-      }), o('CATCH Block', function() {
-        return [null, $2];
-      })
-    ],
-    Throw: [
-      o('THROW Expression', function() {
-        return new Throw($2);
-      })
-    ],
-    Parenthetical: [
-      o('( Body )', function() {
-        return new Parens($2);
-      }), o('( INDENT Body OUTDENT )', function() {
-        return new Parens($3);
-      })
-    ],
-    WhileSource: [
-      o('WHILE Expression', function() {
-        return new While($2);
-      }), o('WHILE Expression WHEN Expression', function() {
-        return new While($2, {
-          guard: $4
-        });
-      }), o('UNTIL Expression', function() {
-        return new While($2, {
-          invert: true
-        });
-      }), o('UNTIL Expression WHEN Expression', function() {
-        return new While($2, {
-          invert: true,
-          guard: $4
-        });
-      })
-    ],
-    While: [
-      o('WhileSource Block', function() {
-        return $1.addBody($2);
-      }), o('Statement  WhileSource', function() {
-        return $2.addBody(LOC(1)(Block.wrap([$1])));
-      }), o('Expression WhileSource', function() {
-        return $2.addBody(LOC(1)(Block.wrap([$1])));
-      }), o('Loop', function() {
-        return $1;
-      })
-    ],
-    Loop: [
-      o('LOOP Block', function() {
-        return new While(LOC(1)(new Literal('true'))).addBody($2);
-      }), o('LOOP Expression', function() {
-        return new While(LOC(1)(new Literal('true'))).addBody(LOC(2)(Block.wrap([$2])));
-      })
-    ],
-    For: [
-      o('Statement  ForBody', function() {
-        return new For($1, $2);
-      }), o('Expression ForBody', function() {
-        return new For($1, $2);
-      }), o('ForBody    Block', function() {
-        return new For($2, $1);
-      })
-    ],
-    ForBody: [
-      o('FOR Range', function() {
-        return {
-          source: LOC(2)(new Value($2))
-        };
-      }), o('ForStart ForSource', function() {
-        $2.own = $1.own;
-        $2.name = $1[0];
-        $2.index = $1[1];
-        return $2;
-      })
-    ],
-    ForStart: [
-      o('FOR ForVariables', function() {
-        return $2;
-      }), o('FOR OWN ForVariables', function() {
-        $3.own = true;
-        return $3;
-      })
-    ],
-    ForValue: [
-      o('Identifier'), o('ThisProperty'), o('Array', function() {
-        return new Value($1);
-      }), o('Object', function() {
-        return new Value($1);
-      })
-    ],
-    ForVariables: [
-      o('ForValue', function() {
-        return [$1];
-      }), o('ForValue , ForValue', function() {
-        return [$1, $3];
-      })
-    ],
-    ForSource: [
-      o('FORIN Expression', function() {
-        return {
-          source: $2
-        };
-      }), o('FOROF Expression', function() {
-        return {
-          source: $2,
-          object: true
-        };
-      }), o('FORIN Expression WHEN Expression', function() {
-        return {
-          source: $2,
-          guard: $4
-        };
-      }), o('FOROF Expression WHEN Expression', function() {
-        return {
-          source: $2,
-          guard: $4,
-          object: true
-        };
-      }), o('FORIN Expression BY Expression', function() {
-        return {
-          source: $2,
-          step: $4
-        };
-      }), o('FORIN Expression WHEN Expression BY Expression', function() {
-        return {
-          source: $2,
-          guard: $4,
-          step: $6
-        };
-      }), o('FORIN Expression BY Expression WHEN Expression', function() {
-        return {
-          source: $2,
-          step: $4,
-          guard: $6
-        };
-      })
-    ],
-    Switch: [
-      o('SWITCH Expression INDENT Whens OUTDENT', function() {
-        return new Switch($2, $4);
-      }), o('SWITCH Expression INDENT Whens ELSE Block OUTDENT', function() {
-        return new Switch($2, $4, $6);
-      }), o('SWITCH INDENT Whens OUTDENT', function() {
-        return new Switch(null, $3);
-      }), o('SWITCH INDENT Whens ELSE Block OUTDENT', function() {
-        return new Switch(null, $3, $5);
-      })
-    ],
-    Whens: [
-      o('When'), o('Whens When', function() {
-        return $1.concat($2);
-      })
-    ],
-    When: [
-      o('LEADING_WHEN SimpleArgs Block', function() {
-        return [[$2, $3]];
-      }), o('LEADING_WHEN SimpleArgs Block TERMINATOR', function() {
-        return [[$2, $3]];
-      })
-    ],
-    IfBlock: [
-      o('IF Expression Block', function() {
-        return new If($2, $3, {
-          type: $1
-        });
-      }), o('IfBlock ELSE IF Expression Block', function() {
-        return $1.addElse(LOC(3, 5)(new If($4, $5, {
-          type: $3
-        })));
-      })
-    ],
-    If: [
-      o('IfBlock'), o('IfBlock ELSE Block', function() {
-        return $1.addElse($3);
-      }), o('Statement  POST_IF Expression', function() {
-        return new If($3, LOC(1)(Block.wrap([$1])), {
-          type: $2,
-          statement: true
-        });
-      }), o('Expression POST_IF Expression', function() {
-        return new If($3, LOC(1)(Block.wrap([$1])), {
-          type: $2,
-          statement: true
-        });
-      })
-    ],
-    Operation: [
-      o('UNARY Expression', function() {
-        return new Op($1, $2);
-      }), o('UNARY_MATH Expression', function() {
-        return new Op($1, $2);
-      }), o('-     Expression', (function() {
-        return new Op('-', $2);
-      }), {
-        prec: 'UNARY_MATH'
-      }), o('+     Expression', (function() {
-        return new Op('+', $2);
-      }), {
-        prec: 'UNARY_MATH'
-      }), o('-- SimpleAssignable', function() {
-        return new Op('--', $2);
-      }), o('++ SimpleAssignable', function() {
-        return new Op('++', $2);
-      }), o('SimpleAssignable --', function() {
-        return new Op('--', $1, null, true);
-      }), o('SimpleAssignable ++', function() {
-        return new Op('++', $1, null, true);
-      }), o('Expression ?', function() {
-        return new Existence($1);
-      }), o('Expression +  Expression', function() {
-        return new Op('+', $1, $3);
-      }), o('Expression -  Expression', function() {
-        return new Op('-', $1, $3);
-      }), o('Expression MATH     Expression', function() {
-        return new Op($2, $1, $3);
-      }), o('Expression **       Expression', function() {
-        return new Op($2, $1, $3);
-      }), o('Expression SHIFT    Expression', function() {
-        return new Op($2, $1, $3);
-      }), o('Expression COMPARE  Expression', function() {
-        return new Op($2, $1, $3);
-      }), o('Expression LOGIC    Expression', function() {
-        return new Op($2, $1, $3);
-      }), o('Expression RELATION Expression', function() {
-        if ($2.charAt(0) === '!') {
-          return new Op($2.slice(1), $1, $3).invert();
-        } else {
-          return new Op($2, $1, $3);
-        }
-      }), o('SimpleAssignable COMPOUND_ASSIGN Expression', function() {
-        return new Assign($1, $3, $2);
-      }), o('SimpleAssignable COMPOUND_ASSIGN INDENT Expression OUTDENT', function() {
-        return new Assign($1, $4, $2);
-      }), o('SimpleAssignable COMPOUND_ASSIGN TERMINATOR Expression', function() {
-        return new Assign($1, $4, $2);
-      }), o('SimpleAssignable EXTENDS Expression', function() {
-        return new Extends($1, $3);
-      })
-    ]
-  };
-
-  operators = [['left', '.', '?.', '::', '?::'], ['left', 'CALL_START', 'CALL_END'], ['nonassoc', '++', '--'], ['left', '?'], ['right', 'UNARY'], ['right', '**'], ['right', 'UNARY_MATH'], ['left', 'MATH'], ['left', '+', '-'], ['left', 'SHIFT'], ['left', 'RELATION'], ['left', 'COMPARE'], ['left', 'LOGIC'], ['nonassoc', 'INDENT', 'OUTDENT'], ['right', '=', ':', 'COMPOUND_ASSIGN', 'RETURN', 'THROW', 'EXTENDS'], ['right', 'FORIN', 'FOROF', 'BY', 'WHEN'], ['right', 'IF', 'ELSE', 'FOR', 'WHILE', 'UNTIL', 'LOOP', 'SUPER', 'CLASS'], ['left', 'POST_IF']];
-
-  tokens = [];
-
-  for (name in grammar) {
-    alternatives = grammar[name];
-    grammar[name] = (function() {
-      var _i, _j, _len, _len1, _ref, _results;
-      _results = [];
-      for (_i = 0, _len = alternatives.length; _i < _len; _i++) {
-        alt = alternatives[_i];
-        _ref = alt[0].split(' ');
-        for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
-          token = _ref[_j];
-          if (!grammar[token]) {
-            tokens.push(token);
-          }
-        }
-        if (name === 'Root') {
-          alt[1] = "return " + alt[1];
-        }
-        _results.push(alt);
-      }
-      return _results;
-    })();
-  }
-
-  exports.parser = new Parser({
-    tokens: tokens.join(' '),
-    bnf: grammar,
-    operators: operators.reverse(),
-    startSymbol: 'Root'
-  });
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/helpers.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/helpers.js
deleted file mode 100644 (file)
index 049f757..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(function() {
-  var buildLocationData, extend, flatten, last, repeat, syntaxErrorToString, _ref;
-
-  exports.starts = function(string, literal, start) {
-    return literal === string.substr(start, literal.length);
-  };
-
-  exports.ends = function(string, literal, back) {
-    var len;
-    len = literal.length;
-    return literal === string.substr(string.length - len - (back || 0), len);
-  };
-
-  exports.repeat = repeat = function(str, n) {
-    var res;
-    res = '';
-    while (n > 0) {
-      if (n & 1) {
-        res += str;
-      }
-      n >>>= 1;
-      str += str;
-    }
-    return res;
-  };
-
-  exports.compact = function(array) {
-    var item, _i, _len, _results;
-    _results = [];
-    for (_i = 0, _len = array.length; _i < _len; _i++) {
-      item = array[_i];
-      if (item) {
-        _results.push(item);
-      }
-    }
-    return _results;
-  };
-
-  exports.count = function(string, substr) {
-    var num, pos;
-    num = pos = 0;
-    if (!substr.length) {
-      return 1 / 0;
-    }
-    while (pos = 1 + string.indexOf(substr, pos)) {
-      num++;
-    }
-    return num;
-  };
-
-  exports.merge = function(options, overrides) {
-    return extend(extend({}, options), overrides);
-  };
-
-  extend = exports.extend = function(object, properties) {
-    var key, val;
-    for (key in properties) {
-      val = properties[key];
-      object[key] = val;
-    }
-    return object;
-  };
-
-  exports.flatten = flatten = function(array) {
-    var element, flattened, _i, _len;
-    flattened = [];
-    for (_i = 0, _len = array.length; _i < _len; _i++) {
-      element = array[_i];
-      if (element instanceof Array) {
-        flattened = flattened.concat(flatten(element));
-      } else {
-        flattened.push(element);
-      }
-    }
-    return flattened;
-  };
-
-  exports.del = function(obj, key) {
-    var val;
-    val = obj[key];
-    delete obj[key];
-    return val;
-  };
-
-  exports.last = last = function(array, back) {
-    return array[array.length - (back || 0) - 1];
-  };
-
-  exports.some = (_ref = Array.prototype.some) != null ? _ref : function(fn) {
-    var e, _i, _len;
-    for (_i = 0, _len = this.length; _i < _len; _i++) {
-      e = this[_i];
-      if (fn(e)) {
-        return true;
-      }
-    }
-    return false;
-  };
-
-  exports.invertLiterate = function(code) {
-    var line, lines, maybe_code;
-    maybe_code = true;
-    lines = (function() {
-      var _i, _len, _ref1, _results;
-      _ref1 = code.split('\n');
-      _results = [];
-      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
-        line = _ref1[_i];
-        if (maybe_code && /^([ ]{4}|[ ]{0,3}\t)/.test(line)) {
-          _results.push(line);
-        } else if (maybe_code = /^\s*$/.test(line)) {
-          _results.push(line);
-        } else {
-          _results.push('# ' + line);
-        }
-      }
-      return _results;
-    })();
-    return lines.join('\n');
-  };
-
-  buildLocationData = function(first, last) {
-    if (!last) {
-      return first;
-    } else {
-      return {
-        first_line: first.first_line,
-        first_column: first.first_column,
-        last_line: last.last_line,
-        last_column: last.last_column
-      };
-    }
-  };
-
-  exports.addLocationDataFn = function(first, last) {
-    return function(obj) {
-      if (((typeof obj) === 'object') && (!!obj['updateLocationDataIfMissing'])) {
-        obj.updateLocationDataIfMissing(buildLocationData(first, last));
-      }
-      return obj;
-    };
-  };
-
-  exports.locationDataToString = function(obj) {
-    var locationData;
-    if (("2" in obj) && ("first_line" in obj[2])) {
-      locationData = obj[2];
-    } else if ("first_line" in obj) {
-      locationData = obj;
-    }
-    if (locationData) {
-      return ("" + (locationData.first_line + 1) + ":" + (locationData.first_column + 1) + "-") + ("" + (locationData.last_line + 1) + ":" + (locationData.last_column + 1));
-    } else {
-      return "No location data";
-    }
-  };
-
-  exports.baseFileName = function(file, stripExt, useWinPathSep) {
-    var parts, pathSep;
-    if (stripExt == null) {
-      stripExt = false;
-    }
-    if (useWinPathSep == null) {
-      useWinPathSep = false;
-    }
-    pathSep = useWinPathSep ? /\\|\// : /\//;
-    parts = file.split(pathSep);
-    file = parts[parts.length - 1];
-    if (!(stripExt && file.indexOf('.') >= 0)) {
-      return file;
-    }
-    parts = file.split('.');
-    parts.pop();
-    if (parts[parts.length - 1] === 'coffee' && parts.length > 1) {
-      parts.pop();
-    }
-    return parts.join('.');
-  };
-
-  exports.isCoffee = function(file) {
-    return /\.((lit)?coffee|coffee\.md)$/.test(file);
-  };
-
-  exports.isLiterate = function(file) {
-    return /\.(litcoffee|coffee\.md)$/.test(file);
-  };
-
-  exports.throwSyntaxError = function(message, location) {
-    var error;
-    error = new SyntaxError(message);
-    error.location = location;
-    error.toString = syntaxErrorToString;
-    error.stack = error.toString();
-    throw error;
-  };
-
-  exports.updateSyntaxError = function(error, code, filename) {
-    if (error.toString === syntaxErrorToString) {
-      error.code || (error.code = code);
-      error.filename || (error.filename = filename);
-      error.stack = error.toString();
-    }
-    return error;
-  };
-
-  syntaxErrorToString = function() {
-    var codeLine, colorize, colorsEnabled, end, filename, first_column, first_line, last_column, last_line, marker, start, _ref1, _ref2;
-    if (!(this.code && this.location)) {
-      return Error.prototype.toString.call(this);
-    }
-    _ref1 = this.location, first_line = _ref1.first_line, first_column = _ref1.first_column, last_line = _ref1.last_line, last_column = _ref1.last_column;
-    if (last_line == null) {
-      last_line = first_line;
-    }
-    if (last_column == null) {
-      last_column = first_column;
-    }
-    filename = this.filename || '[stdin]';
-    codeLine = this.code.split('\n')[first_line];
-    start = first_column;
-    end = first_line === last_line ? last_column + 1 : codeLine.length;
-    marker = codeLine.slice(0, start).replace(/[^\s]/g, ' ') + repeat('^', end - start);
-    if (typeof process !== "undefined" && process !== null) {
-      colorsEnabled = process.stdout.isTTY && !process.env.NODE_DISABLE_COLORS;
-    }
-    if ((_ref2 = this.colorful) != null ? _ref2 : colorsEnabled) {
-      colorize = function(str) {
-        return "\x1B[1;31m" + str + "\x1B[0m";
-      };
-      codeLine = codeLine.slice(0, start) + colorize(codeLine.slice(start, end)) + codeLine.slice(end);
-      marker = colorize(marker);
-    }
-    return "" + filename + ":" + (first_line + 1) + ":" + (first_column + 1) + ": error: " + this.message + "\n" + codeLine + "\n" + marker;
-  };
-
-  exports.nameWhitespaceCharacter = function(string) {
-    switch (string) {
-      case ' ':
-        return 'space';
-      case '\n':
-        return 'newline';
-      case '\r':
-        return 'carriage return';
-      case '\t':
-        return 'tab';
-      default:
-        return string;
-    }
-  };
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/index.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/index.js
deleted file mode 100644 (file)
index 46c97ea..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(function() {
-  var key, val, _ref;
-
-  _ref = require('./coffee-script');
-  for (key in _ref) {
-    val = _ref[key];
-    exports[key] = val;
-  }
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/lexer.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/lexer.js
deleted file mode 100644 (file)
index 0f3cef8..0000000
+++ /dev/null
@@ -1,934 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(function() {
-  var BOM, BOOL, CALLABLE, CODE, COFFEE_ALIASES, COFFEE_ALIAS_MAP, COFFEE_KEYWORDS, COMMENT, COMPARE, COMPOUND_ASSIGN, HEREDOC, HEREDOC_ILLEGAL, HEREDOC_INDENT, HEREGEX, HEREGEX_OMIT, IDENTIFIER, INDENTABLE_CLOSERS, INDEXABLE, INVERSES, JSTOKEN, JS_FORBIDDEN, JS_KEYWORDS, LINE_BREAK, LINE_CONTINUER, LOGIC, Lexer, MATH, MULTILINER, MULTI_DENT, NOT_REGEX, NOT_SPACED_REGEX, NUMBER, OPERATOR, REGEX, RELATION, RESERVED, Rewriter, SHIFT, SIMPLESTR, STRICT_PROSCRIBED, TRAILING_SPACES, UNARY, UNARY_MATH, WHITESPACE, compact, count, invertLiterate, key, last, locationDataToString, repeat, starts, throwSyntaxError, _ref, _ref1,
-    __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
-  _ref = require('./rewriter'), Rewriter = _ref.Rewriter, INVERSES = _ref.INVERSES;
-
-  _ref1 = require('./helpers'), count = _ref1.count, starts = _ref1.starts, compact = _ref1.compact, last = _ref1.last, repeat = _ref1.repeat, invertLiterate = _ref1.invertLiterate, locationDataToString = _ref1.locationDataToString, throwSyntaxError = _ref1.throwSyntaxError;
-
-  exports.Lexer = Lexer = (function() {
-    function Lexer() {}
-
-    Lexer.prototype.tokenize = function(code, opts) {
-      var consumed, i, tag, _ref2;
-      if (opts == null) {
-        opts = {};
-      }
-      this.literate = opts.literate;
-      this.indent = 0;
-      this.baseIndent = 0;
-      this.indebt = 0;
-      this.outdebt = 0;
-      this.indents = [];
-      this.ends = [];
-      this.tokens = [];
-      this.chunkLine = opts.line || 0;
-      this.chunkColumn = opts.column || 0;
-      code = this.clean(code);
-      i = 0;
-      while (this.chunk = code.slice(i)) {
-        consumed = this.identifierToken() || this.commentToken() || this.whitespaceToken() || this.lineToken() || this.heredocToken() || this.stringToken() || this.numberToken() || this.regexToken() || this.jsToken() || this.literalToken();
-        _ref2 = this.getLineAndColumnFromChunk(consumed), this.chunkLine = _ref2[0], this.chunkColumn = _ref2[1];
-        i += consumed;
-      }
-      this.closeIndentation();
-      if (tag = this.ends.pop()) {
-        this.error("missing " + tag);
-      }
-      if (opts.rewrite === false) {
-        return this.tokens;
-      }
-      return (new Rewriter).rewrite(this.tokens);
-    };
-
-    Lexer.prototype.clean = function(code) {
-      if (code.charCodeAt(0) === BOM) {
-        code = code.slice(1);
-      }
-      code = code.replace(/\r/g, '').replace(TRAILING_SPACES, '');
-      if (WHITESPACE.test(code)) {
-        code = "\n" + code;
-        this.chunkLine--;
-      }
-      if (this.literate) {
-        code = invertLiterate(code);
-      }
-      return code;
-    };
-
-    Lexer.prototype.identifierToken = function() {
-      var colon, colonOffset, forcedIdentifier, id, idLength, input, match, poppedToken, prev, tag, tagToken, _ref2, _ref3, _ref4;
-      if (!(match = IDENTIFIER.exec(this.chunk))) {
-        return 0;
-      }
-      input = match[0], id = match[1], colon = match[2];
-      idLength = id.length;
-      poppedToken = void 0;
-      if (id === 'own' && this.tag() === 'FOR') {
-        this.token('OWN', id);
-        return id.length;
-      }
-      forcedIdentifier = colon || (prev = last(this.tokens)) && (((_ref2 = prev[0]) === '.' || _ref2 === '?.' || _ref2 === '::' || _ref2 === '?::') || !prev.spaced && prev[0] === '@');
-      tag = 'IDENTIFIER';
-      if (!forcedIdentifier && (__indexOf.call(JS_KEYWORDS, id) >= 0 || __indexOf.call(COFFEE_KEYWORDS, id) >= 0)) {
-        tag = id.toUpperCase();
-        if (tag === 'WHEN' && (_ref3 = this.tag(), __indexOf.call(LINE_BREAK, _ref3) >= 0)) {
-          tag = 'LEADING_WHEN';
-        } else if (tag === 'FOR') {
-          this.seenFor = true;
-        } else if (tag === 'UNLESS') {
-          tag = 'IF';
-        } else if (__indexOf.call(UNARY, tag) >= 0) {
-          tag = 'UNARY';
-        } else if (__indexOf.call(RELATION, tag) >= 0) {
-          if (tag !== 'INSTANCEOF' && this.seenFor) {
-            tag = 'FOR' + tag;
-            this.seenFor = false;
-          } else {
-            tag = 'RELATION';
-            if (this.value() === '!') {
-              poppedToken = this.tokens.pop();
-              id = '!' + id;
-            }
-          }
-        }
-      }
-      if (__indexOf.call(JS_FORBIDDEN, id) >= 0) {
-        if (forcedIdentifier) {
-          tag = 'IDENTIFIER';
-          id = new String(id);
-          id.reserved = true;
-        } else if (__indexOf.call(RESERVED, id) >= 0) {
-          this.error("reserved word \"" + id + "\"");
-        }
-      }
-      if (!forcedIdentifier) {
-        if (__indexOf.call(COFFEE_ALIASES, id) >= 0) {
-          id = COFFEE_ALIAS_MAP[id];
-        }
-        tag = (function() {
-          switch (id) {
-            case '!':
-              return 'UNARY';
-            case '==':
-            case '!=':
-              return 'COMPARE';
-            case '&&':
-            case '||':
-              return 'LOGIC';
-            case 'true':
-            case 'false':
-              return 'BOOL';
-            case 'break':
-            case 'continue':
-              return 'STATEMENT';
-            default:
-              return tag;
-          }
-        })();
-      }
-      tagToken = this.token(tag, id, 0, idLength);
-      if (poppedToken) {
-        _ref4 = [poppedToken[2].first_line, poppedToken[2].first_column], tagToken[2].first_line = _ref4[0], tagToken[2].first_column = _ref4[1];
-      }
-      if (colon) {
-        colonOffset = input.lastIndexOf(':');
-        this.token(':', ':', colonOffset, colon.length);
-      }
-      return input.length;
-    };
-
-    Lexer.prototype.numberToken = function() {
-      var binaryLiteral, lexedLength, match, number, octalLiteral;
-      if (!(match = NUMBER.exec(this.chunk))) {
-        return 0;
-      }
-      number = match[0];
-      if (/^0[BOX]/.test(number)) {
-        this.error("radix prefix '" + number + "' must be lowercase");
-      } else if (/E/.test(number) && !/^0x/.test(number)) {
-        this.error("exponential notation '" + number + "' must be indicated with a lowercase 'e'");
-      } else if (/^0\d*[89]/.test(number)) {
-        this.error("decimal literal '" + number + "' must not be prefixed with '0'");
-      } else if (/^0\d+/.test(number)) {
-        this.error("octal literal '" + number + "' must be prefixed with '0o'");
-      }
-      lexedLength = number.length;
-      if (octalLiteral = /^0o([0-7]+)/.exec(number)) {
-        number = '0x' + parseInt(octalLiteral[1], 8).toString(16);
-      }
-      if (binaryLiteral = /^0b([01]+)/.exec(number)) {
-        number = '0x' + parseInt(binaryLiteral[1], 2).toString(16);
-      }
-      this.token('NUMBER', number, 0, lexedLength);
-      return lexedLength;
-    };
-
-    Lexer.prototype.stringToken = function() {
-      var inner, innerLen, numBreak, octalEsc, pos, quote, string, trimmed;
-      switch (quote = this.chunk.charAt(0)) {
-        case "'":
-          string = (SIMPLESTR.exec(this.chunk) || [])[0];
-          break;
-        case '"':
-          string = this.balancedString(this.chunk, '"');
-      }
-      if (!string) {
-        return 0;
-      }
-      inner = string.slice(1, -1);
-      trimmed = this.removeNewlines(inner);
-      if (quote === '"' && 0 < string.indexOf('#{', 1)) {
-        numBreak = pos = 0;
-        innerLen = inner.length;
-        while (inner.charAt(pos++) === '\n' && pos < innerLen) {
-          numBreak++;
-        }
-        this.interpolateString(trimmed, {
-          strOffset: 1 + numBreak,
-          lexedLength: string.length
-        });
-      } else {
-        this.token('STRING', quote + this.escapeLines(trimmed) + quote, 0, string.length);
-      }
-      if (octalEsc = /^(?:\\.|[^\\])*\\(?:0[0-7]|[1-7])/.test(string)) {
-        this.error("octal escape sequences " + string + " are not allowed");
-      }
-      return string.length;
-    };
-
-    Lexer.prototype.heredocToken = function() {
-      var doc, heredoc, match, quote, strOffset;
-      if (!(match = HEREDOC.exec(this.chunk))) {
-        return 0;
-      }
-      heredoc = match[0];
-      quote = heredoc.charAt(0);
-      doc = this.sanitizeHeredoc(match[2], {
-        quote: quote,
-        indent: null
-      });
-      if (quote === '"' && 0 <= doc.indexOf('#{')) {
-        strOffset = match[2].charAt(0) === '\n' ? 4 : 3;
-        this.interpolateString(doc, {
-          heredoc: true,
-          strOffset: strOffset,
-          lexedLength: heredoc.length
-        });
-      } else {
-        this.token('STRING', this.makeString(doc, quote, true), 0, heredoc.length);
-      }
-      return heredoc.length;
-    };
-
-    Lexer.prototype.commentToken = function() {
-      var comment, here, match;
-      if (!(match = this.chunk.match(COMMENT))) {
-        return 0;
-      }
-      comment = match[0], here = match[1];
-      if (here) {
-        this.token('HERECOMMENT', this.sanitizeHeredoc(here, {
-          herecomment: true,
-          indent: repeat(' ', this.indent)
-        }), 0, comment.length);
-      }
-      return comment.length;
-    };
-
-    Lexer.prototype.jsToken = function() {
-      var match, script;
-      if (!(this.chunk.charAt(0) === '`' && (match = JSTOKEN.exec(this.chunk)))) {
-        return 0;
-      }
-      this.token('JS', (script = match[0]).slice(1, -1), 0, script.length);
-      return script.length;
-    };
-
-    Lexer.prototype.regexToken = function() {
-      var flags, length, match, prev, regex, _ref2, _ref3;
-      if (this.chunk.charAt(0) !== '/') {
-        return 0;
-      }
-      if (length = this.heregexToken()) {
-        return length;
-      }
-      prev = last(this.tokens);
-      if (prev && (_ref2 = prev[0], __indexOf.call((prev.spaced ? NOT_REGEX : NOT_SPACED_REGEX), _ref2) >= 0)) {
-        return 0;
-      }
-      if (!(match = REGEX.exec(this.chunk))) {
-        return 0;
-      }
-      _ref3 = match, match = _ref3[0], regex = _ref3[1], flags = _ref3[2];
-      if (regex === '//') {
-        return 0;
-      }
-      if (regex.slice(0, 2) === '/*') {
-        this.error('regular expressions cannot begin with `*`');
-      }
-      this.token('REGEX', "" + regex + flags, 0, match.length);
-      return match.length;
-    };
-
-    Lexer.prototype.heregexToken = function() {
-      var body, flags, flagsOffset, heregex, match, plusToken, prev, re, tag, token, tokens, value, _i, _len, _ref2, _ref3, _ref4;
-      if (!(match = HEREGEX.exec(this.chunk))) {
-        return 0;
-      }
-      heregex = match[0], body = match[1], flags = match[2];
-      if (0 > body.indexOf('#{')) {
-        re = this.escapeLines(body.replace(HEREGEX_OMIT, '$1$2').replace(/\//g, '\\/'), true);
-        if (re.match(/^\*/)) {
-          this.error('regular expressions cannot begin with `*`');
-        }
-        this.token('REGEX', "/" + (re || '(?:)') + "/" + flags, 0, heregex.length);
-        return heregex.length;
-      }
-      this.token('IDENTIFIER', 'RegExp', 0, 0);
-      this.token('CALL_START', '(', 0, 0);
-      tokens = [];
-      _ref2 = this.interpolateString(body, {
-        regex: true,
-        strOffset: 3
-      });
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        token = _ref2[_i];
-        tag = token[0], value = token[1];
-        if (tag === 'TOKENS') {
-          tokens.push.apply(tokens, value);
-        } else if (tag === 'NEOSTRING') {
-          if (!(value = value.replace(HEREGEX_OMIT, '$1$2'))) {
-            continue;
-          }
-          value = value.replace(/\\/g, '\\\\');
-          token[0] = 'STRING';
-          token[1] = this.makeString(value, '"', true);
-          tokens.push(token);
-        } else {
-          this.error("Unexpected " + tag);
-        }
-        prev = last(this.tokens);
-        plusToken = ['+', '+'];
-        plusToken[2] = prev[2];
-        tokens.push(plusToken);
-      }
-      tokens.pop();
-      if (((_ref3 = tokens[0]) != null ? _ref3[0] : void 0) !== 'STRING') {
-        this.token('STRING', '""', 0, 0);
-        this.token('+', '+', 0, 0);
-      }
-      (_ref4 = this.tokens).push.apply(_ref4, tokens);
-      if (flags) {
-        flagsOffset = heregex.lastIndexOf(flags);
-        this.token(',', ',', flagsOffset, 0);
-        this.token('STRING', '"' + flags + '"', flagsOffset, flags.length);
-      }
-      this.token(')', ')', heregex.length - 1, 0);
-      return heregex.length;
-    };
-
-    Lexer.prototype.lineToken = function() {
-      var diff, indent, match, noNewlines, size;
-      if (!(match = MULTI_DENT.exec(this.chunk))) {
-        return 0;
-      }
-      indent = match[0];
-      this.seenFor = false;
-      size = indent.length - 1 - indent.lastIndexOf('\n');
-      noNewlines = this.unfinished();
-      if (size - this.indebt === this.indent) {
-        if (noNewlines) {
-          this.suppressNewlines();
-        } else {
-          this.newlineToken(0);
-        }
-        return indent.length;
-      }
-      if (size > this.indent) {
-        if (noNewlines) {
-          this.indebt = size - this.indent;
-          this.suppressNewlines();
-          return indent.length;
-        }
-        if (!this.tokens.length) {
-          this.baseIndent = this.indent = size;
-          return indent.length;
-        }
-        diff = size - this.indent + this.outdebt;
-        this.token('INDENT', diff, indent.length - size, size);
-        this.indents.push(diff);
-        this.ends.push('OUTDENT');
-        this.outdebt = this.indebt = 0;
-        this.indent = size;
-      } else if (size < this.baseIndent) {
-        this.error('missing indentation', indent.length);
-      } else {
-        this.indebt = 0;
-        this.outdentToken(this.indent - size, noNewlines, indent.length);
-      }
-      return indent.length;
-    };
-
-    Lexer.prototype.outdentToken = function(moveOut, noNewlines, outdentLength) {
-      var decreasedIndent, dent, lastIndent, _ref2;
-      decreasedIndent = this.indent - moveOut;
-      while (moveOut > 0) {
-        lastIndent = this.indents[this.indents.length - 1];
-        if (!lastIndent) {
-          moveOut = 0;
-        } else if (lastIndent === this.outdebt) {
-          moveOut -= this.outdebt;
-          this.outdebt = 0;
-        } else if (lastIndent < this.outdebt) {
-          this.outdebt -= lastIndent;
-          moveOut -= lastIndent;
-        } else {
-          dent = this.indents.pop() + this.outdebt;
-          if (outdentLength && (_ref2 = this.chunk[outdentLength], __indexOf.call(INDENTABLE_CLOSERS, _ref2) >= 0)) {
-            decreasedIndent -= dent - moveOut;
-            moveOut = dent;
-          }
-          this.outdebt = 0;
-          this.pair('OUTDENT');
-          this.token('OUTDENT', moveOut, 0, outdentLength);
-          moveOut -= dent;
-        }
-      }
-      if (dent) {
-        this.outdebt -= moveOut;
-      }
-      while (this.value() === ';') {
-        this.tokens.pop();
-      }
-      if (!(this.tag() === 'TERMINATOR' || noNewlines)) {
-        this.token('TERMINATOR', '\n', outdentLength, 0);
-      }
-      this.indent = decreasedIndent;
-      return this;
-    };
-
-    Lexer.prototype.whitespaceToken = function() {
-      var match, nline, prev;
-      if (!((match = WHITESPACE.exec(this.chunk)) || (nline = this.chunk.charAt(0) === '\n'))) {
-        return 0;
-      }
-      prev = last(this.tokens);
-      if (prev) {
-        prev[match ? 'spaced' : 'newLine'] = true;
-      }
-      if (match) {
-        return match[0].length;
-      } else {
-        return 0;
-      }
-    };
-
-    Lexer.prototype.newlineToken = function(offset) {
-      while (this.value() === ';') {
-        this.tokens.pop();
-      }
-      if (this.tag() !== 'TERMINATOR') {
-        this.token('TERMINATOR', '\n', offset, 0);
-      }
-      return this;
-    };
-
-    Lexer.prototype.suppressNewlines = function() {
-      if (this.value() === '\\') {
-        this.tokens.pop();
-      }
-      return this;
-    };
-
-    Lexer.prototype.literalToken = function() {
-      var match, prev, tag, value, _ref2, _ref3, _ref4, _ref5;
-      if (match = OPERATOR.exec(this.chunk)) {
-        value = match[0];
-        if (CODE.test(value)) {
-          this.tagParameters();
-        }
-      } else {
-        value = this.chunk.charAt(0);
-      }
-      tag = value;
-      prev = last(this.tokens);
-      if (value === '=' && prev) {
-        if (!prev[1].reserved && (_ref2 = prev[1], __indexOf.call(JS_FORBIDDEN, _ref2) >= 0)) {
-          this.error("reserved word \"" + (this.value()) + "\" can't be assigned");
-        }
-        if ((_ref3 = prev[1]) === '||' || _ref3 === '&&') {
-          prev[0] = 'COMPOUND_ASSIGN';
-          prev[1] += '=';
-          return value.length;
-        }
-      }
-      if (value === ';') {
-        this.seenFor = false;
-        tag = 'TERMINATOR';
-      } else if (__indexOf.call(MATH, value) >= 0) {
-        tag = 'MATH';
-      } else if (__indexOf.call(COMPARE, value) >= 0) {
-        tag = 'COMPARE';
-      } else if (__indexOf.call(COMPOUND_ASSIGN, value) >= 0) {
-        tag = 'COMPOUND_ASSIGN';
-      } else if (__indexOf.call(UNARY, value) >= 0) {
-        tag = 'UNARY';
-      } else if (__indexOf.call(UNARY_MATH, value) >= 0) {
-        tag = 'UNARY_MATH';
-      } else if (__indexOf.call(SHIFT, value) >= 0) {
-        tag = 'SHIFT';
-      } else if (__indexOf.call(LOGIC, value) >= 0 || value === '?' && (prev != null ? prev.spaced : void 0)) {
-        tag = 'LOGIC';
-      } else if (prev && !prev.spaced) {
-        if (value === '(' && (_ref4 = prev[0], __indexOf.call(CALLABLE, _ref4) >= 0)) {
-          if (prev[0] === '?') {
-            prev[0] = 'FUNC_EXIST';
-          }
-          tag = 'CALL_START';
-        } else if (value === '[' && (_ref5 = prev[0], __indexOf.call(INDEXABLE, _ref5) >= 0)) {
-          tag = 'INDEX_START';
-          switch (prev[0]) {
-            case '?':
-              prev[0] = 'INDEX_SOAK';
-          }
-        }
-      }
-      switch (value) {
-        case '(':
-        case '{':
-        case '[':
-          this.ends.push(INVERSES[value]);
-          break;
-        case ')':
-        case '}':
-        case ']':
-          this.pair(value);
-      }
-      this.token(tag, value);
-      return value.length;
-    };
-
-    Lexer.prototype.sanitizeHeredoc = function(doc, options) {
-      var attempt, herecomment, indent, match, _ref2;
-      indent = options.indent, herecomment = options.herecomment;
-      if (herecomment) {
-        if (HEREDOC_ILLEGAL.test(doc)) {
-          this.error("block comment cannot contain \"*/\", starting");
-        }
-        if (doc.indexOf('\n') < 0) {
-          return doc;
-        }
-      } else {
-        while (match = HEREDOC_INDENT.exec(doc)) {
-          attempt = match[1];
-          if (indent === null || (0 < (_ref2 = attempt.length) && _ref2 < indent.length)) {
-            indent = attempt;
-          }
-        }
-      }
-      if (indent) {
-        doc = doc.replace(RegExp("\\n" + indent, "g"), '\n');
-      }
-      if (!herecomment) {
-        doc = doc.replace(/^\n/, '');
-      }
-      return doc;
-    };
-
-    Lexer.prototype.tagParameters = function() {
-      var i, stack, tok, tokens;
-      if (this.tag() !== ')') {
-        return this;
-      }
-      stack = [];
-      tokens = this.tokens;
-      i = tokens.length;
-      tokens[--i][0] = 'PARAM_END';
-      while (tok = tokens[--i]) {
-        switch (tok[0]) {
-          case ')':
-            stack.push(tok);
-            break;
-          case '(':
-          case 'CALL_START':
-            if (stack.length) {
-              stack.pop();
-            } else if (tok[0] === '(') {
-              tok[0] = 'PARAM_START';
-              return this;
-            } else {
-              return this;
-            }
-        }
-      }
-      return this;
-    };
-
-    Lexer.prototype.closeIndentation = function() {
-      return this.outdentToken(this.indent);
-    };
-
-    Lexer.prototype.balancedString = function(str, end) {
-      var continueCount, i, letter, match, prev, stack, _i, _ref2;
-      continueCount = 0;
-      stack = [end];
-      for (i = _i = 1, _ref2 = str.length; 1 <= _ref2 ? _i < _ref2 : _i > _ref2; i = 1 <= _ref2 ? ++_i : --_i) {
-        if (continueCount) {
-          --continueCount;
-          continue;
-        }
-        switch (letter = str.charAt(i)) {
-          case '\\':
-            ++continueCount;
-            continue;
-          case end:
-            stack.pop();
-            if (!stack.length) {
-              return str.slice(0, +i + 1 || 9e9);
-            }
-            end = stack[stack.length - 1];
-            continue;
-        }
-        if (end === '}' && (letter === '"' || letter === "'")) {
-          stack.push(end = letter);
-        } else if (end === '}' && letter === '/' && (match = HEREGEX.exec(str.slice(i)) || REGEX.exec(str.slice(i)))) {
-          continueCount += match[0].length - 1;
-        } else if (end === '}' && letter === '{') {
-          stack.push(end = '}');
-        } else if (end === '"' && prev === '#' && letter === '{') {
-          stack.push(end = '}');
-        }
-        prev = letter;
-      }
-      return this.error("missing " + (stack.pop()) + ", starting");
-    };
-
-    Lexer.prototype.interpolateString = function(str, options) {
-      var column, errorToken, expr, heredoc, i, inner, interpolated, len, letter, lexedLength, line, locationToken, nested, offsetInChunk, pi, plusToken, popped, regex, rparen, strOffset, tag, token, tokens, value, _i, _len, _ref2, _ref3, _ref4;
-      if (options == null) {
-        options = {};
-      }
-      heredoc = options.heredoc, regex = options.regex, offsetInChunk = options.offsetInChunk, strOffset = options.strOffset, lexedLength = options.lexedLength;
-      offsetInChunk || (offsetInChunk = 0);
-      strOffset || (strOffset = 0);
-      lexedLength || (lexedLength = str.length);
-      tokens = [];
-      pi = 0;
-      i = -1;
-      while (letter = str.charAt(i += 1)) {
-        if (letter === '\\') {
-          i += 1;
-          continue;
-        }
-        if (!(letter === '#' && str.charAt(i + 1) === '{' && (expr = this.balancedString(str.slice(i + 1), '}')))) {
-          continue;
-        }
-        if (pi < i) {
-          tokens.push(this.makeToken('NEOSTRING', str.slice(pi, i), strOffset + pi));
-        }
-        if (!errorToken) {
-          errorToken = this.makeToken('', 'string interpolation', offsetInChunk + i + 1, 2);
-        }
-        inner = expr.slice(1, -1);
-        if (inner.length) {
-          _ref2 = this.getLineAndColumnFromChunk(strOffset + i + 2), line = _ref2[0], column = _ref2[1];
-          nested = new Lexer().tokenize(inner, {
-            line: line,
-            column: column,
-            rewrite: false
-          });
-          popped = nested.pop();
-          if (((_ref3 = nested[0]) != null ? _ref3[0] : void 0) === 'TERMINATOR') {
-            popped = nested.shift();
-          }
-          if (len = nested.length) {
-            if (len > 1) {
-              nested.unshift(this.makeToken('(', '(', strOffset + i + 1, 0));
-              nested.push(this.makeToken(')', ')', strOffset + i + 1 + inner.length, 0));
-            }
-            tokens.push(['TOKENS', nested]);
-          }
-        }
-        i += expr.length;
-        pi = i + 1;
-      }
-      if ((i > pi && pi < str.length)) {
-        tokens.push(this.makeToken('NEOSTRING', str.slice(pi), strOffset + pi));
-      }
-      if (regex) {
-        return tokens;
-      }
-      if (!tokens.length) {
-        return this.token('STRING', '""', offsetInChunk, lexedLength);
-      }
-      if (tokens[0][0] !== 'NEOSTRING') {
-        tokens.unshift(this.makeToken('NEOSTRING', '', offsetInChunk));
-      }
-      if (interpolated = tokens.length > 1) {
-        this.token('(', '(', offsetInChunk, 0, errorToken);
-      }
-      for (i = _i = 0, _len = tokens.length; _i < _len; i = ++_i) {
-        token = tokens[i];
-        tag = token[0], value = token[1];
-        if (i) {
-          if (i) {
-            plusToken = this.token('+', '+');
-          }
-          locationToken = tag === 'TOKENS' ? value[0] : token;
-          plusToken[2] = {
-            first_line: locationToken[2].first_line,
-            first_column: locationToken[2].first_column,
-            last_line: locationToken[2].first_line,
-            last_column: locationToken[2].first_column
-          };
-        }
-        if (tag === 'TOKENS') {
-          (_ref4 = this.tokens).push.apply(_ref4, value);
-        } else if (tag === 'NEOSTRING') {
-          token[0] = 'STRING';
-          token[1] = this.makeString(value, '"', heredoc);
-          this.tokens.push(token);
-        } else {
-          this.error("Unexpected " + tag);
-        }
-      }
-      if (interpolated) {
-        rparen = this.makeToken(')', ')', offsetInChunk + lexedLength, 0);
-        rparen.stringEnd = true;
-        this.tokens.push(rparen);
-      }
-      return tokens;
-    };
-
-    Lexer.prototype.pair = function(tag) {
-      var wanted;
-      if (tag !== (wanted = last(this.ends))) {
-        if ('OUTDENT' !== wanted) {
-          this.error("unmatched " + tag);
-        }
-        this.outdentToken(last(this.indents), true);
-        return this.pair(tag);
-      }
-      return this.ends.pop();
-    };
-
-    Lexer.prototype.getLineAndColumnFromChunk = function(offset) {
-      var column, lineCount, lines, string;
-      if (offset === 0) {
-        return [this.chunkLine, this.chunkColumn];
-      }
-      if (offset >= this.chunk.length) {
-        string = this.chunk;
-      } else {
-        string = this.chunk.slice(0, +(offset - 1) + 1 || 9e9);
-      }
-      lineCount = count(string, '\n');
-      column = this.chunkColumn;
-      if (lineCount > 0) {
-        lines = string.split('\n');
-        column = last(lines).length;
-      } else {
-        column += string.length;
-      }
-      return [this.chunkLine + lineCount, column];
-    };
-
-    Lexer.prototype.makeToken = function(tag, value, offsetInChunk, length) {
-      var lastCharacter, locationData, token, _ref2, _ref3;
-      if (offsetInChunk == null) {
-        offsetInChunk = 0;
-      }
-      if (length == null) {
-        length = value.length;
-      }
-      locationData = {};
-      _ref2 = this.getLineAndColumnFromChunk(offsetInChunk), locationData.first_line = _ref2[0], locationData.first_column = _ref2[1];
-      lastCharacter = Math.max(0, length - 1);
-      _ref3 = this.getLineAndColumnFromChunk(offsetInChunk + lastCharacter), locationData.last_line = _ref3[0], locationData.last_column = _ref3[1];
-      token = [tag, value, locationData];
-      return token;
-    };
-
-    Lexer.prototype.token = function(tag, value, offsetInChunk, length, origin) {
-      var token;
-      token = this.makeToken(tag, value, offsetInChunk, length);
-      if (origin) {
-        token.origin = origin;
-      }
-      this.tokens.push(token);
-      return token;
-    };
-
-    Lexer.prototype.tag = function(index, tag) {
-      var tok;
-      return (tok = last(this.tokens, index)) && (tag ? tok[0] = tag : tok[0]);
-    };
-
-    Lexer.prototype.value = function(index, val) {
-      var tok;
-      return (tok = last(this.tokens, index)) && (val ? tok[1] = val : tok[1]);
-    };
-
-    Lexer.prototype.unfinished = function() {
-      var _ref2;
-      return LINE_CONTINUER.test(this.chunk) || ((_ref2 = this.tag()) === '\\' || _ref2 === '.' || _ref2 === '?.' || _ref2 === '?::' || _ref2 === 'UNARY' || _ref2 === 'MATH' || _ref2 === 'UNARY_MATH' || _ref2 === '+' || _ref2 === '-' || _ref2 === '**' || _ref2 === 'SHIFT' || _ref2 === 'RELATION' || _ref2 === 'COMPARE' || _ref2 === 'LOGIC' || _ref2 === 'THROW' || _ref2 === 'EXTENDS');
-    };
-
-    Lexer.prototype.removeNewlines = function(str) {
-      return str.replace(/^\s*\n\s*/, '').replace(/([^\\]|\\\\)\s*\n\s*$/, '$1');
-    };
-
-    Lexer.prototype.escapeLines = function(str, heredoc) {
-      str = str.replace(/\\[^\S\n]*(\n|\\)\s*/g, function(escaped, character) {
-        if (character === '\n') {
-          return '';
-        } else {
-          return escaped;
-        }
-      });
-      if (heredoc) {
-        return str.replace(MULTILINER, '\\n');
-      } else {
-        return str.replace(/\s*\n\s*/g, ' ');
-      }
-    };
-
-    Lexer.prototype.makeString = function(body, quote, heredoc) {
-      if (!body) {
-        return quote + quote;
-      }
-      body = body.replace(RegExp("\\\\(" + quote + "|\\\\)", "g"), function(match, contents) {
-        if (contents === quote) {
-          return contents;
-        } else {
-          return match;
-        }
-      });
-      body = body.replace(RegExp("" + quote, "g"), '\\$&');
-      return quote + this.escapeLines(body, heredoc) + quote;
-    };
-
-    Lexer.prototype.error = function(message, offset) {
-      var first_column, first_line, _ref2;
-      if (offset == null) {
-        offset = 0;
-      }
-      _ref2 = this.getLineAndColumnFromChunk(offset), first_line = _ref2[0], first_column = _ref2[1];
-      return throwSyntaxError(message, {
-        first_line: first_line,
-        first_column: first_column
-      });
-    };
-
-    return Lexer;
-
-  })();
-
-  JS_KEYWORDS = ['true', 'false', 'null', 'this', 'new', 'delete', 'typeof', 'in', 'instanceof', 'return', 'throw', 'break', 'continue', 'debugger', 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally', 'class', 'extends', 'super'];
-
-  COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when'];
-
-  COFFEE_ALIAS_MAP = {
-    and: '&&',
-    or: '||',
-    is: '==',
-    isnt: '!=',
-    not: '!',
-    yes: 'true',
-    no: 'false',
-    on: 'true',
-    off: 'false'
-  };
-
-  COFFEE_ALIASES = (function() {
-    var _results;
-    _results = [];
-    for (key in COFFEE_ALIAS_MAP) {
-      _results.push(key);
-    }
-    return _results;
-  })();
-
-  COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(COFFEE_ALIASES);
-
-  RESERVED = ['case', 'default', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'export', 'import', 'native', '__hasProp', '__extends', '__slice', '__bind', '__indexOf', 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield'];
-
-  STRICT_PROSCRIBED = ['arguments', 'eval'];
-
-  JS_FORBIDDEN = JS_KEYWORDS.concat(RESERVED).concat(STRICT_PROSCRIBED);
-
-  exports.RESERVED = RESERVED.concat(JS_KEYWORDS).concat(COFFEE_KEYWORDS).concat(STRICT_PROSCRIBED);
-
-  exports.STRICT_PROSCRIBED = STRICT_PROSCRIBED;
-
-  BOM = 65279;
-
-  IDENTIFIER = /^([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)([^\n\S]*:(?!:))?/;
-
-  NUMBER = /^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i;
-
-  HEREDOC = /^("""|''')((?:\\[\s\S]|[^\\])*?)(?:\n[^\n\S]*)?\1/;
-
-  OPERATOR = /^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;
-
-  WHITESPACE = /^[^\n\S]+/;
-
-  COMMENT = /^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/;
-
-  CODE = /^[-=]>/;
-
-  MULTI_DENT = /^(?:\n[^\n\S]*)+/;
-
-  SIMPLESTR = /^'[^\\']*(?:\\[\s\S][^\\']*)*'/;
-
-  JSTOKEN = /^`[^\\`]*(?:\\.[^\\`]*)*`/;
-
-  REGEX = /^(\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)([imgy]{0,4})(?!\w)/;
-
-  HEREGEX = /^\/{3}((?:\\?[\s\S])+?)\/{3}([imgy]{0,4})(?!\w)/;
-
-  HEREGEX_OMIT = /((?:\\\\)+)|\\(\s|\/)|\s+(?:#.*)?/g;
-
-  MULTILINER = /\n/g;
-
-  HEREDOC_INDENT = /\n+([^\n\S]*)/g;
-
-  HEREDOC_ILLEGAL = /\*\//;
-
-  LINE_CONTINUER = /^\s*(?:,|\??\.(?![.\d])|::)/;
-
-  TRAILING_SPACES = /\s+$/;
-
-  COMPOUND_ASSIGN = ['-=', '+=', '/=', '*=', '%=', '||=', '&&=', '?=', '<<=', '>>=', '>>>=', '&=', '^=', '|=', '**=', '//=', '%%='];
-
-  UNARY = ['NEW', 'TYPEOF', 'DELETE', 'DO'];
-
-  UNARY_MATH = ['!', '~'];
-
-  LOGIC = ['&&', '||', '&', '|', '^'];
-
-  SHIFT = ['<<', '>>', '>>>'];
-
-  COMPARE = ['==', '!=', '<', '>', '<=', '>='];
-
-  MATH = ['*', '/', '%', '//', '%%'];
-
-  RELATION = ['IN', 'OF', 'INSTANCEOF'];
-
-  BOOL = ['TRUE', 'FALSE'];
-
-  NOT_REGEX = ['NUMBER', 'REGEX', 'BOOL', 'NULL', 'UNDEFINED', '++', '--'];
-
-  NOT_SPACED_REGEX = NOT_REGEX.concat(')', '}', 'THIS', 'IDENTIFIER', 'STRING', ']');
-
-  CALLABLE = ['IDENTIFIER', 'STRING', 'REGEX', ')', ']', '}', '?', '::', '@', 'THIS', 'SUPER'];
-
-  INDEXABLE = CALLABLE.concat('NUMBER', 'BOOL', 'NULL', 'UNDEFINED');
-
-  LINE_BREAK = ['INDENT', 'OUTDENT', 'TERMINATOR'];
-
-  INDENTABLE_CLOSERS = [')', '}', ']'];
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/nodes.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/nodes.js
deleted file mode 100644 (file)
index 52c99a9..0000000
+++ /dev/null
@@ -1,3156 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(function() {
-  var Access, Arr, Assign, Base, Block, Call, Class, Code, CodeFragment, Comment, Existence, Expansion, Extends, For, HEXNUM, IDENTIFIER, IDENTIFIER_STR, IS_REGEX, IS_STRING, If, In, Index, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, METHOD_DEF, NEGATE, NO, NUMBER, Obj, Op, Param, Parens, RESERVED, Range, Return, SIMPLENUM, STRICT_PROSCRIBED, Scope, Slice, Splat, Switch, TAB, THIS, Throw, Try, UTILITIES, Value, While, YES, addLocationDataFn, compact, del, ends, extend, flatten, fragmentsToText, isLiteralArguments, isLiteralThis, last, locationDataToString, merge, multident, parseNum, some, starts, throwSyntaxError, unfoldSoak, utility, _ref, _ref1,
-    __hasProp = {}.hasOwnProperty,
-    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
-    __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
-    __slice = [].slice;
-
-  Error.stackTraceLimit = Infinity;
-
-  Scope = require('./scope').Scope;
-
-  _ref = require('./lexer'), RESERVED = _ref.RESERVED, STRICT_PROSCRIBED = _ref.STRICT_PROSCRIBED;
-
-  _ref1 = require('./helpers'), compact = _ref1.compact, flatten = _ref1.flatten, extend = _ref1.extend, merge = _ref1.merge, del = _ref1.del, starts = _ref1.starts, ends = _ref1.ends, last = _ref1.last, some = _ref1.some, addLocationDataFn = _ref1.addLocationDataFn, locationDataToString = _ref1.locationDataToString, throwSyntaxError = _ref1.throwSyntaxError;
-
-  exports.extend = extend;
-
-  exports.addLocationDataFn = addLocationDataFn;
-
-  YES = function() {
-    return true;
-  };
-
-  NO = function() {
-    return false;
-  };
-
-  THIS = function() {
-    return this;
-  };
-
-  NEGATE = function() {
-    this.negated = !this.negated;
-    return this;
-  };
-
-  exports.CodeFragment = CodeFragment = (function() {
-    function CodeFragment(parent, code) {
-      var _ref2;
-      this.code = "" + code;
-      this.locationData = parent != null ? parent.locationData : void 0;
-      this.type = (parent != null ? (_ref2 = parent.constructor) != null ? _ref2.name : void 0 : void 0) || 'unknown';
-    }
-
-    CodeFragment.prototype.toString = function() {
-      return "" + this.code + (this.locationData ? ": " + locationDataToString(this.locationData) : '');
-    };
-
-    return CodeFragment;
-
-  })();
-
-  fragmentsToText = function(fragments) {
-    var fragment;
-    return ((function() {
-      var _i, _len, _results;
-      _results = [];
-      for (_i = 0, _len = fragments.length; _i < _len; _i++) {
-        fragment = fragments[_i];
-        _results.push(fragment.code);
-      }
-      return _results;
-    })()).join('');
-  };
-
-  exports.Base = Base = (function() {
-    function Base() {}
-
-    Base.prototype.compile = function(o, lvl) {
-      return fragmentsToText(this.compileToFragments(o, lvl));
-    };
-
-    Base.prototype.compileToFragments = function(o, lvl) {
-      var node;
-      o = extend({}, o);
-      if (lvl) {
-        o.level = lvl;
-      }
-      node = this.unfoldSoak(o) || this;
-      node.tab = o.indent;
-      if (o.level === LEVEL_TOP || !node.isStatement(o)) {
-        return node.compileNode(o);
-      } else {
-        return node.compileClosure(o);
-      }
-    };
-
-    Base.prototype.compileClosure = function(o) {
-      var args, argumentsNode, func, jumpNode, meth;
-      if (jumpNode = this.jumps()) {
-        jumpNode.error('cannot use a pure statement in an expression');
-      }
-      o.sharedScope = true;
-      func = new Code([], Block.wrap([this]));
-      args = [];
-      if ((argumentsNode = this.contains(isLiteralArguments)) || this.contains(isLiteralThis)) {
-        args = [new Literal('this')];
-        if (argumentsNode) {
-          meth = 'apply';
-          args.push(new Literal('arguments'));
-        } else {
-          meth = 'call';
-        }
-        func = new Value(func, [new Access(new Literal(meth))]);
-      }
-      return (new Call(func, args)).compileNode(o);
-    };
-
-    Base.prototype.cache = function(o, level, reused) {
-      var ref, sub;
-      if (!this.isComplex()) {
-        ref = level ? this.compileToFragments(o, level) : this;
-        return [ref, ref];
-      } else {
-        ref = new Literal(reused || o.scope.freeVariable('ref'));
-        sub = new Assign(ref, this);
-        if (level) {
-          return [sub.compileToFragments(o, level), [this.makeCode(ref.value)]];
-        } else {
-          return [sub, ref];
-        }
-      }
-    };
-
-    Base.prototype.cacheToCodeFragments = function(cacheValues) {
-      return [fragmentsToText(cacheValues[0]), fragmentsToText(cacheValues[1])];
-    };
-
-    Base.prototype.makeReturn = function(res) {
-      var me;
-      me = this.unwrapAll();
-      if (res) {
-        return new Call(new Literal("" + res + ".push"), [me]);
-      } else {
-        return new Return(me);
-      }
-    };
-
-    Base.prototype.contains = function(pred) {
-      var node;
-      node = void 0;
-      this.traverseChildren(false, function(n) {
-        if (pred(n)) {
-          node = n;
-          return false;
-        }
-      });
-      return node;
-    };
-
-    Base.prototype.lastNonComment = function(list) {
-      var i;
-      i = list.length;
-      while (i--) {
-        if (!(list[i] instanceof Comment)) {
-          return list[i];
-        }
-      }
-      return null;
-    };
-
-    Base.prototype.toString = function(idt, name) {
-      var tree;
-      if (idt == null) {
-        idt = '';
-      }
-      if (name == null) {
-        name = this.constructor.name;
-      }
-      tree = '\n' + idt + name;
-      if (this.soak) {
-        tree += '?';
-      }
-      this.eachChild(function(node) {
-        return tree += node.toString(idt + TAB);
-      });
-      return tree;
-    };
-
-    Base.prototype.eachChild = function(func) {
-      var attr, child, _i, _j, _len, _len1, _ref2, _ref3;
-      if (!this.children) {
-        return this;
-      }
-      _ref2 = this.children;
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        attr = _ref2[_i];
-        if (this[attr]) {
-          _ref3 = flatten([this[attr]]);
-          for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) {
-            child = _ref3[_j];
-            if (func(child) === false) {
-              return this;
-            }
-          }
-        }
-      }
-      return this;
-    };
-
-    Base.prototype.traverseChildren = function(crossScope, func) {
-      return this.eachChild(function(child) {
-        var recur;
-        recur = func(child);
-        if (recur !== false) {
-          return child.traverseChildren(crossScope, func);
-        }
-      });
-    };
-
-    Base.prototype.invert = function() {
-      return new Op('!', this);
-    };
-
-    Base.prototype.unwrapAll = function() {
-      var node;
-      node = this;
-      while (node !== (node = node.unwrap())) {
-        continue;
-      }
-      return node;
-    };
-
-    Base.prototype.children = [];
-
-    Base.prototype.isStatement = NO;
-
-    Base.prototype.jumps = NO;
-
-    Base.prototype.isComplex = YES;
-
-    Base.prototype.isChainable = NO;
-
-    Base.prototype.isAssignable = NO;
-
-    Base.prototype.unwrap = THIS;
-
-    Base.prototype.unfoldSoak = NO;
-
-    Base.prototype.assigns = NO;
-
-    Base.prototype.updateLocationDataIfMissing = function(locationData) {
-      if (this.locationData) {
-        return this;
-      }
-      this.locationData = locationData;
-      return this.eachChild(function(child) {
-        return child.updateLocationDataIfMissing(locationData);
-      });
-    };
-
-    Base.prototype.error = function(message) {
-      return throwSyntaxError(message, this.locationData);
-    };
-
-    Base.prototype.makeCode = function(code) {
-      return new CodeFragment(this, code);
-    };
-
-    Base.prototype.wrapInBraces = function(fragments) {
-      return [].concat(this.makeCode('('), fragments, this.makeCode(')'));
-    };
-
-    Base.prototype.joinFragmentArrays = function(fragmentsList, joinStr) {
-      var answer, fragments, i, _i, _len;
-      answer = [];
-      for (i = _i = 0, _len = fragmentsList.length; _i < _len; i = ++_i) {
-        fragments = fragmentsList[i];
-        if (i) {
-          answer.push(this.makeCode(joinStr));
-        }
-        answer = answer.concat(fragments);
-      }
-      return answer;
-    };
-
-    return Base;
-
-  })();
-
-  exports.Block = Block = (function(_super) {
-    __extends(Block, _super);
-
-    function Block(nodes) {
-      this.expressions = compact(flatten(nodes || []));
-    }
-
-    Block.prototype.children = ['expressions'];
-
-    Block.prototype.push = function(node) {
-      this.expressions.push(node);
-      return this;
-    };
-
-    Block.prototype.pop = function() {
-      return this.expressions.pop();
-    };
-
-    Block.prototype.unshift = function(node) {
-      this.expressions.unshift(node);
-      return this;
-    };
-
-    Block.prototype.unwrap = function() {
-      if (this.expressions.length === 1) {
-        return this.expressions[0];
-      } else {
-        return this;
-      }
-    };
-
-    Block.prototype.isEmpty = function() {
-      return !this.expressions.length;
-    };
-
-    Block.prototype.isStatement = function(o) {
-      var exp, _i, _len, _ref2;
-      _ref2 = this.expressions;
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        exp = _ref2[_i];
-        if (exp.isStatement(o)) {
-          return true;
-        }
-      }
-      return false;
-    };
-
-    Block.prototype.jumps = function(o) {
-      var exp, jumpNode, _i, _len, _ref2;
-      _ref2 = this.expressions;
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        exp = _ref2[_i];
-        if (jumpNode = exp.jumps(o)) {
-          return jumpNode;
-        }
-      }
-    };
-
-    Block.prototype.makeReturn = function(res) {
-      var expr, len;
-      len = this.expressions.length;
-      while (len--) {
-        expr = this.expressions[len];
-        if (!(expr instanceof Comment)) {
-          this.expressions[len] = expr.makeReturn(res);
-          if (expr instanceof Return && !expr.expression) {
-            this.expressions.splice(len, 1);
-          }
-          break;
-        }
-      }
-      return this;
-    };
-
-    Block.prototype.compileToFragments = function(o, level) {
-      if (o == null) {
-        o = {};
-      }
-      if (o.scope) {
-        return Block.__super__.compileToFragments.call(this, o, level);
-      } else {
-        return this.compileRoot(o);
-      }
-    };
-
-    Block.prototype.compileNode = function(o) {
-      var answer, compiledNodes, fragments, index, node, top, _i, _len, _ref2;
-      this.tab = o.indent;
-      top = o.level === LEVEL_TOP;
-      compiledNodes = [];
-      _ref2 = this.expressions;
-      for (index = _i = 0, _len = _ref2.length; _i < _len; index = ++_i) {
-        node = _ref2[index];
-        node = node.unwrapAll();
-        node = node.unfoldSoak(o) || node;
-        if (node instanceof Block) {
-          compiledNodes.push(node.compileNode(o));
-        } else if (top) {
-          node.front = true;
-          fragments = node.compileToFragments(o);
-          if (!node.isStatement(o)) {
-            fragments.unshift(this.makeCode("" + this.tab));
-            fragments.push(this.makeCode(";"));
-          }
-          compiledNodes.push(fragments);
-        } else {
-          compiledNodes.push(node.compileToFragments(o, LEVEL_LIST));
-        }
-      }
-      if (top) {
-        if (this.spaced) {
-          return [].concat(this.joinFragmentArrays(compiledNodes, '\n\n'), this.makeCode("\n"));
-        } else {
-          return this.joinFragmentArrays(compiledNodes, '\n');
-        }
-      }
-      if (compiledNodes.length) {
-        answer = this.joinFragmentArrays(compiledNodes, ', ');
-      } else {
-        answer = [this.makeCode("void 0")];
-      }
-      if (compiledNodes.length > 1 && o.level >= LEVEL_LIST) {
-        return this.wrapInBraces(answer);
-      } else {
-        return answer;
-      }
-    };
-
-    Block.prototype.compileRoot = function(o) {
-      var exp, fragments, i, name, prelude, preludeExps, rest, _i, _len, _ref2;
-      o.indent = o.bare ? '' : TAB;
-      o.level = LEVEL_TOP;
-      this.spaced = true;
-      o.scope = new Scope(null, this, null);
-      _ref2 = o.locals || [];
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        name = _ref2[_i];
-        o.scope.parameter(name);
-      }
-      prelude = [];
-      if (!o.bare) {
-        preludeExps = (function() {
-          var _j, _len1, _ref3, _results;
-          _ref3 = this.expressions;
-          _results = [];
-          for (i = _j = 0, _len1 = _ref3.length; _j < _len1; i = ++_j) {
-            exp = _ref3[i];
-            if (!(exp.unwrap() instanceof Comment)) {
-              break;
-            }
-            _results.push(exp);
-          }
-          return _results;
-        }).call(this);
-        rest = this.expressions.slice(preludeExps.length);
-        this.expressions = preludeExps;
-        if (preludeExps.length) {
-          prelude = this.compileNode(merge(o, {
-            indent: ''
-          }));
-          prelude.push(this.makeCode("\n"));
-        }
-        this.expressions = rest;
-      }
-      fragments = this.compileWithDeclarations(o);
-      if (o.bare) {
-        return fragments;
-      }
-      return [].concat(prelude, this.makeCode("(function() {\n"), fragments, this.makeCode("\n}).call(this);\n"));
-    };
-
-    Block.prototype.compileWithDeclarations = function(o) {
-      var assigns, declars, exp, fragments, i, post, rest, scope, spaced, _i, _len, _ref2, _ref3, _ref4;
-      fragments = [];
-      post = [];
-      _ref2 = this.expressions;
-      for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) {
-        exp = _ref2[i];
-        exp = exp.unwrap();
-        if (!(exp instanceof Comment || exp instanceof Literal)) {
-          break;
-        }
-      }
-      o = merge(o, {
-        level: LEVEL_TOP
-      });
-      if (i) {
-        rest = this.expressions.splice(i, 9e9);
-        _ref3 = [this.spaced, false], spaced = _ref3[0], this.spaced = _ref3[1];
-        _ref4 = [this.compileNode(o), spaced], fragments = _ref4[0], this.spaced = _ref4[1];
-        this.expressions = rest;
-      }
-      post = this.compileNode(o);
-      scope = o.scope;
-      if (scope.expressions === this) {
-        declars = o.scope.hasDeclarations();
-        assigns = scope.hasAssignments;
-        if (declars || assigns) {
-          if (i) {
-            fragments.push(this.makeCode('\n'));
-          }
-          fragments.push(this.makeCode("" + this.tab + "var "));
-          if (declars) {
-            fragments.push(this.makeCode(scope.declaredVariables().join(', ')));
-          }
-          if (assigns) {
-            if (declars) {
-              fragments.push(this.makeCode(",\n" + (this.tab + TAB)));
-            }
-            fragments.push(this.makeCode(scope.assignedVariables().join(",\n" + (this.tab + TAB))));
-          }
-          fragments.push(this.makeCode(";\n" + (this.spaced ? '\n' : '')));
-        } else if (fragments.length && post.length) {
-          fragments.push(this.makeCode("\n"));
-        }
-      }
-      return fragments.concat(post);
-    };
-
-    Block.wrap = function(nodes) {
-      if (nodes.length === 1 && nodes[0] instanceof Block) {
-        return nodes[0];
-      }
-      return new Block(nodes);
-    };
-
-    return Block;
-
-  })(Base);
-
-  exports.Literal = Literal = (function(_super) {
-    __extends(Literal, _super);
-
-    function Literal(value) {
-      this.value = value;
-    }
-
-    Literal.prototype.makeReturn = function() {
-      if (this.isStatement()) {
-        return this;
-      } else {
-        return Literal.__super__.makeReturn.apply(this, arguments);
-      }
-    };
-
-    Literal.prototype.isAssignable = function() {
-      return IDENTIFIER.test(this.value);
-    };
-
-    Literal.prototype.isStatement = function() {
-      var _ref2;
-      return (_ref2 = this.value) === 'break' || _ref2 === 'continue' || _ref2 === 'debugger';
-    };
-
-    Literal.prototype.isComplex = NO;
-
-    Literal.prototype.assigns = function(name) {
-      return name === this.value;
-    };
-
-    Literal.prototype.jumps = function(o) {
-      if (this.value === 'break' && !((o != null ? o.loop : void 0) || (o != null ? o.block : void 0))) {
-        return this;
-      }
-      if (this.value === 'continue' && !(o != null ? o.loop : void 0)) {
-        return this;
-      }
-    };
-
-    Literal.prototype.compileNode = function(o) {
-      var answer, code, _ref2;
-      code = this.value === 'this' ? ((_ref2 = o.scope.method) != null ? _ref2.bound : void 0) ? o.scope.method.context : this.value : this.value.reserved ? "\"" + this.value + "\"" : this.value;
-      answer = this.isStatement() ? "" + this.tab + code + ";" : code;
-      return [this.makeCode(answer)];
-    };
-
-    Literal.prototype.toString = function() {
-      return ' "' + this.value + '"';
-    };
-
-    return Literal;
-
-  })(Base);
-
-  exports.Undefined = (function(_super) {
-    __extends(Undefined, _super);
-
-    function Undefined() {
-      return Undefined.__super__.constructor.apply(this, arguments);
-    }
-
-    Undefined.prototype.isAssignable = NO;
-
-    Undefined.prototype.isComplex = NO;
-
-    Undefined.prototype.compileNode = function(o) {
-      return [this.makeCode(o.level >= LEVEL_ACCESS ? '(void 0)' : 'void 0')];
-    };
-
-    return Undefined;
-
-  })(Base);
-
-  exports.Null = (function(_super) {
-    __extends(Null, _super);
-
-    function Null() {
-      return Null.__super__.constructor.apply(this, arguments);
-    }
-
-    Null.prototype.isAssignable = NO;
-
-    Null.prototype.isComplex = NO;
-
-    Null.prototype.compileNode = function() {
-      return [this.makeCode("null")];
-    };
-
-    return Null;
-
-  })(Base);
-
-  exports.Bool = (function(_super) {
-    __extends(Bool, _super);
-
-    Bool.prototype.isAssignable = NO;
-
-    Bool.prototype.isComplex = NO;
-
-    Bool.prototype.compileNode = function() {
-      return [this.makeCode(this.val)];
-    };
-
-    function Bool(val) {
-      this.val = val;
-    }
-
-    return Bool;
-
-  })(Base);
-
-  exports.Return = Return = (function(_super) {
-    __extends(Return, _super);
-
-    function Return(expression) {
-      this.expression = expression;
-    }
-
-    Return.prototype.children = ['expression'];
-
-    Return.prototype.isStatement = YES;
-
-    Return.prototype.makeReturn = THIS;
-
-    Return.prototype.jumps = THIS;
-
-    Return.prototype.compileToFragments = function(o, level) {
-      var expr, _ref2;
-      expr = (_ref2 = this.expression) != null ? _ref2.makeReturn() : void 0;
-      if (expr && !(expr instanceof Return)) {
-        return expr.compileToFragments(o, level);
-      } else {
-        return Return.__super__.compileToFragments.call(this, o, level);
-      }
-    };
-
-    Return.prototype.compileNode = function(o) {
-      var answer;
-      answer = [];
-      answer.push(this.makeCode(this.tab + ("return" + (this.expression ? " " : ""))));
-      if (this.expression) {
-        answer = answer.concat(this.expression.compileToFragments(o, LEVEL_PAREN));
-      }
-      answer.push(this.makeCode(";"));
-      return answer;
-    };
-
-    return Return;
-
-  })(Base);
-
-  exports.Value = Value = (function(_super) {
-    __extends(Value, _super);
-
-    function Value(base, props, tag) {
-      if (!props && base instanceof Value) {
-        return base;
-      }
-      this.base = base;
-      this.properties = props || [];
-      if (tag) {
-        this[tag] = true;
-      }
-      return this;
-    }
-
-    Value.prototype.children = ['base', 'properties'];
-
-    Value.prototype.add = function(props) {
-      this.properties = this.properties.concat(props);
-      return this;
-    };
-
-    Value.prototype.hasProperties = function() {
-      return !!this.properties.length;
-    };
-
-    Value.prototype.bareLiteral = function(type) {
-      return !this.properties.length && this.base instanceof type;
-    };
-
-    Value.prototype.isArray = function() {
-      return this.bareLiteral(Arr);
-    };
-
-    Value.prototype.isRange = function() {
-      return this.bareLiteral(Range);
-    };
-
-    Value.prototype.isComplex = function() {
-      return this.hasProperties() || this.base.isComplex();
-    };
-
-    Value.prototype.isAssignable = function() {
-      return this.hasProperties() || this.base.isAssignable();
-    };
-
-    Value.prototype.isSimpleNumber = function() {
-      return this.bareLiteral(Literal) && SIMPLENUM.test(this.base.value);
-    };
-
-    Value.prototype.isString = function() {
-      return this.bareLiteral(Literal) && IS_STRING.test(this.base.value);
-    };
-
-    Value.prototype.isRegex = function() {
-      return this.bareLiteral(Literal) && IS_REGEX.test(this.base.value);
-    };
-
-    Value.prototype.isAtomic = function() {
-      var node, _i, _len, _ref2;
-      _ref2 = this.properties.concat(this.base);
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        node = _ref2[_i];
-        if (node.soak || node instanceof Call) {
-          return false;
-        }
-      }
-      return true;
-    };
-
-    Value.prototype.isNotCallable = function() {
-      return this.isSimpleNumber() || this.isString() || this.isRegex() || this.isArray() || this.isRange() || this.isSplice() || this.isObject();
-    };
-
-    Value.prototype.isStatement = function(o) {
-      return !this.properties.length && this.base.isStatement(o);
-    };
-
-    Value.prototype.assigns = function(name) {
-      return !this.properties.length && this.base.assigns(name);
-    };
-
-    Value.prototype.jumps = function(o) {
-      return !this.properties.length && this.base.jumps(o);
-    };
-
-    Value.prototype.isObject = function(onlyGenerated) {
-      if (this.properties.length) {
-        return false;
-      }
-      return (this.base instanceof Obj) && (!onlyGenerated || this.base.generated);
-    };
-
-    Value.prototype.isSplice = function() {
-      return last(this.properties) instanceof Slice;
-    };
-
-    Value.prototype.looksStatic = function(className) {
-      var _ref2;
-      return this.base.value === className && this.properties.length && ((_ref2 = this.properties[0].name) != null ? _ref2.value : void 0) !== 'prototype';
-    };
-
-    Value.prototype.unwrap = function() {
-      if (this.properties.length) {
-        return this;
-      } else {
-        return this.base;
-      }
-    };
-
-    Value.prototype.cacheReference = function(o) {
-      var base, bref, name, nref;
-      name = last(this.properties);
-      if (this.properties.length < 2 && !this.base.isComplex() && !(name != null ? name.isComplex() : void 0)) {
-        return [this, this];
-      }
-      base = new Value(this.base, this.properties.slice(0, -1));
-      if (base.isComplex()) {
-        bref = new Literal(o.scope.freeVariable('base'));
-        base = new Value(new Parens(new Assign(bref, base)));
-      }
-      if (!name) {
-        return [base, bref];
-      }
-      if (name.isComplex()) {
-        nref = new Literal(o.scope.freeVariable('name'));
-        name = new Index(new Assign(nref, name.index));
-        nref = new Index(nref);
-      }
-      return [base.add(name), new Value(bref || base.base, [nref || name])];
-    };
-
-    Value.prototype.compileNode = function(o) {
-      var fragments, prop, props, _i, _len;
-      this.base.front = this.front;
-      props = this.properties;
-      fragments = this.base.compileToFragments(o, (props.length ? LEVEL_ACCESS : null));
-      if ((this.base instanceof Parens || props.length) && SIMPLENUM.test(fragmentsToText(fragments))) {
-        fragments.push(this.makeCode('.'));
-      }
-      for (_i = 0, _len = props.length; _i < _len; _i++) {
-        prop = props[_i];
-        fragments.push.apply(fragments, prop.compileToFragments(o));
-      }
-      return fragments;
-    };
-
-    Value.prototype.unfoldSoak = function(o) {
-      return this.unfoldedSoak != null ? this.unfoldedSoak : this.unfoldedSoak = (function(_this) {
-        return function() {
-          var fst, i, ifn, prop, ref, snd, _i, _len, _ref2, _ref3;
-          if (ifn = _this.base.unfoldSoak(o)) {
-            (_ref2 = ifn.body.properties).push.apply(_ref2, _this.properties);
-            return ifn;
-          }
-          _ref3 = _this.properties;
-          for (i = _i = 0, _len = _ref3.length; _i < _len; i = ++_i) {
-            prop = _ref3[i];
-            if (!prop.soak) {
-              continue;
-            }
-            prop.soak = false;
-            fst = new Value(_this.base, _this.properties.slice(0, i));
-            snd = new Value(_this.base, _this.properties.slice(i));
-            if (fst.isComplex()) {
-              ref = new Literal(o.scope.freeVariable('ref'));
-              fst = new Parens(new Assign(ref, fst));
-              snd.base = ref;
-            }
-            return new If(new Existence(fst), snd, {
-              soak: true
-            });
-          }
-          return false;
-        };
-      })(this)();
-    };
-
-    return Value;
-
-  })(Base);
-
-  exports.Comment = Comment = (function(_super) {
-    __extends(Comment, _super);
-
-    function Comment(comment) {
-      this.comment = comment;
-    }
-
-    Comment.prototype.isStatement = YES;
-
-    Comment.prototype.makeReturn = THIS;
-
-    Comment.prototype.compileNode = function(o, level) {
-      var code, comment;
-      comment = this.comment.replace(/^(\s*)#/gm, "$1 *");
-      code = "/*" + (multident(comment, this.tab)) + (__indexOf.call(comment, '\n') >= 0 ? "\n" + this.tab : '') + " */";
-      if ((level || o.level) === LEVEL_TOP) {
-        code = o.indent + code;
-      }
-      return [this.makeCode("\n"), this.makeCode(code)];
-    };
-
-    return Comment;
-
-  })(Base);
-
-  exports.Call = Call = (function(_super) {
-    __extends(Call, _super);
-
-    function Call(variable, args, soak) {
-      this.args = args != null ? args : [];
-      this.soak = soak;
-      this.isNew = false;
-      this.isSuper = variable === 'super';
-      this.variable = this.isSuper ? null : variable;
-      if (variable instanceof Value && variable.isNotCallable()) {
-        variable.error("literal is not a function");
-      }
-    }
-
-    Call.prototype.children = ['variable', 'args'];
-
-    Call.prototype.newInstance = function() {
-      var base, _ref2;
-      base = ((_ref2 = this.variable) != null ? _ref2.base : void 0) || this.variable;
-      if (base instanceof Call && !base.isNew) {
-        base.newInstance();
-      } else {
-        this.isNew = true;
-      }
-      return this;
-    };
-
-    Call.prototype.superReference = function(o) {
-      var accesses, method;
-      method = o.scope.namedMethod();
-      if (method != null ? method.klass : void 0) {
-        accesses = [new Access(new Literal('__super__'))];
-        if (method["static"]) {
-          accesses.push(new Access(new Literal('constructor')));
-        }
-        accesses.push(new Access(new Literal(method.name)));
-        return (new Value(new Literal(method.klass), accesses)).compile(o);
-      } else if (method != null ? method.ctor : void 0) {
-        return "" + method.name + ".__super__.constructor";
-      } else {
-        return this.error('cannot call super outside of an instance method.');
-      }
-    };
-
-    Call.prototype.superThis = function(o) {
-      var method;
-      method = o.scope.method;
-      return (method && !method.klass && method.context) || "this";
-    };
-
-    Call.prototype.unfoldSoak = function(o) {
-      var call, ifn, left, list, rite, _i, _len, _ref2, _ref3;
-      if (this.soak) {
-        if (this.variable) {
-          if (ifn = unfoldSoak(o, this, 'variable')) {
-            return ifn;
-          }
-          _ref2 = new Value(this.variable).cacheReference(o), left = _ref2[0], rite = _ref2[1];
-        } else {
-          left = new Literal(this.superReference(o));
-          rite = new Value(left);
-        }
-        rite = new Call(rite, this.args);
-        rite.isNew = this.isNew;
-        left = new Literal("typeof " + (left.compile(o)) + " === \"function\"");
-        return new If(left, new Value(rite), {
-          soak: true
-        });
-      }
-      call = this;
-      list = [];
-      while (true) {
-        if (call.variable instanceof Call) {
-          list.push(call);
-          call = call.variable;
-          continue;
-        }
-        if (!(call.variable instanceof Value)) {
-          break;
-        }
-        list.push(call);
-        if (!((call = call.variable.base) instanceof Call)) {
-          break;
-        }
-      }
-      _ref3 = list.reverse();
-      for (_i = 0, _len = _ref3.length; _i < _len; _i++) {
-        call = _ref3[_i];
-        if (ifn) {
-          if (call.variable instanceof Call) {
-            call.variable = ifn;
-          } else {
-            call.variable.base = ifn;
-          }
-        }
-        ifn = unfoldSoak(o, call, 'variable');
-      }
-      return ifn;
-    };
-
-    Call.prototype.compileNode = function(o) {
-      var arg, argIndex, compiledArgs, compiledArray, fragments, preface, _i, _len, _ref2, _ref3;
-      if ((_ref2 = this.variable) != null) {
-        _ref2.front = this.front;
-      }
-      compiledArray = Splat.compileSplattedArray(o, this.args, true);
-      if (compiledArray.length) {
-        return this.compileSplat(o, compiledArray);
-      }
-      compiledArgs = [];
-      _ref3 = this.args;
-      for (argIndex = _i = 0, _len = _ref3.length; _i < _len; argIndex = ++_i) {
-        arg = _ref3[argIndex];
-        if (argIndex) {
-          compiledArgs.push(this.makeCode(", "));
-        }
-        compiledArgs.push.apply(compiledArgs, arg.compileToFragments(o, LEVEL_LIST));
-      }
-      fragments = [];
-      if (this.isSuper) {
-        preface = this.superReference(o) + (".call(" + (this.superThis(o)));
-        if (compiledArgs.length) {
-          preface += ", ";
-        }
-        fragments.push(this.makeCode(preface));
-      } else {
-        if (this.isNew) {
-          fragments.push(this.makeCode('new '));
-        }
-        fragments.push.apply(fragments, this.variable.compileToFragments(o, LEVEL_ACCESS));
-        fragments.push(this.makeCode("("));
-      }
-      fragments.push.apply(fragments, compiledArgs);
-      fragments.push(this.makeCode(")"));
-      return fragments;
-    };
-
-    Call.prototype.compileSplat = function(o, splatArgs) {
-      var answer, base, fun, idt, name, ref;
-      if (this.isSuper) {
-        return [].concat(this.makeCode("" + (this.superReference(o)) + ".apply(" + (this.superThis(o)) + ", "), splatArgs, this.makeCode(")"));
-      }
-      if (this.isNew) {
-        idt = this.tab + TAB;
-        return [].concat(this.makeCode("(function(func, args, ctor) {\n" + idt + "ctor.prototype = func.prototype;\n" + idt + "var child = new ctor, result = func.apply(child, args);\n" + idt + "return Object(result) === result ? result : child;\n" + this.tab + "})("), this.variable.compileToFragments(o, LEVEL_LIST), this.makeCode(", "), splatArgs, this.makeCode(", function(){})"));
-      }
-      answer = [];
-      base = new Value(this.variable);
-      if ((name = base.properties.pop()) && base.isComplex()) {
-        ref = o.scope.freeVariable('ref');
-        answer = answer.concat(this.makeCode("(" + ref + " = "), base.compileToFragments(o, LEVEL_LIST), this.makeCode(")"), name.compileToFragments(o));
-      } else {
-        fun = base.compileToFragments(o, LEVEL_ACCESS);
-        if (SIMPLENUM.test(fragmentsToText(fun))) {
-          fun = this.wrapInBraces(fun);
-        }
-        if (name) {
-          ref = fragmentsToText(fun);
-          fun.push.apply(fun, name.compileToFragments(o));
-        } else {
-          ref = 'null';
-        }
-        answer = answer.concat(fun);
-      }
-      return answer = answer.concat(this.makeCode(".apply(" + ref + ", "), splatArgs, this.makeCode(")"));
-    };
-
-    return Call;
-
-  })(Base);
-
-  exports.Extends = Extends = (function(_super) {
-    __extends(Extends, _super);
-
-    function Extends(child, parent) {
-      this.child = child;
-      this.parent = parent;
-    }
-
-    Extends.prototype.children = ['child', 'parent'];
-
-    Extends.prototype.compileToFragments = function(o) {
-      return new Call(new Value(new Literal(utility('extends'))), [this.child, this.parent]).compileToFragments(o);
-    };
-
-    return Extends;
-
-  })(Base);
-
-  exports.Access = Access = (function(_super) {
-    __extends(Access, _super);
-
-    function Access(name, tag) {
-      this.name = name;
-      this.name.asKey = true;
-      this.soak = tag === 'soak';
-    }
-
-    Access.prototype.children = ['name'];
-
-    Access.prototype.compileToFragments = function(o) {
-      var name;
-      name = this.name.compileToFragments(o);
-      if (IDENTIFIER.test(fragmentsToText(name))) {
-        name.unshift(this.makeCode("."));
-      } else {
-        name.unshift(this.makeCode("["));
-        name.push(this.makeCode("]"));
-      }
-      return name;
-    };
-
-    Access.prototype.isComplex = NO;
-
-    return Access;
-
-  })(Base);
-
-  exports.Index = Index = (function(_super) {
-    __extends(Index, _super);
-
-    function Index(index) {
-      this.index = index;
-    }
-
-    Index.prototype.children = ['index'];
-
-    Index.prototype.compileToFragments = function(o) {
-      return [].concat(this.makeCode("["), this.index.compileToFragments(o, LEVEL_PAREN), this.makeCode("]"));
-    };
-
-    Index.prototype.isComplex = function() {
-      return this.index.isComplex();
-    };
-
-    return Index;
-
-  })(Base);
-
-  exports.Range = Range = (function(_super) {
-    __extends(Range, _super);
-
-    Range.prototype.children = ['from', 'to'];
-
-    function Range(from, to, tag) {
-      this.from = from;
-      this.to = to;
-      this.exclusive = tag === 'exclusive';
-      this.equals = this.exclusive ? '' : '=';
-    }
-
-    Range.prototype.compileVariables = function(o) {
-      var step, _ref2, _ref3, _ref4, _ref5;
-      o = merge(o, {
-        top: true
-      });
-      _ref2 = this.cacheToCodeFragments(this.from.cache(o, LEVEL_LIST)), this.fromC = _ref2[0], this.fromVar = _ref2[1];
-      _ref3 = this.cacheToCodeFragments(this.to.cache(o, LEVEL_LIST)), this.toC = _ref3[0], this.toVar = _ref3[1];
-      if (step = del(o, 'step')) {
-        _ref4 = this.cacheToCodeFragments(step.cache(o, LEVEL_LIST)), this.step = _ref4[0], this.stepVar = _ref4[1];
-      }
-      _ref5 = [this.fromVar.match(NUMBER), this.toVar.match(NUMBER)], this.fromNum = _ref5[0], this.toNum = _ref5[1];
-      if (this.stepVar) {
-        return this.stepNum = this.stepVar.match(NUMBER);
-      }
-    };
-
-    Range.prototype.compileNode = function(o) {
-      var cond, condPart, from, gt, idx, idxName, known, lt, namedIndex, stepPart, to, varPart, _ref2, _ref3;
-      if (!this.fromVar) {
-        this.compileVariables(o);
-      }
-      if (!o.index) {
-        return this.compileArray(o);
-      }
-      known = this.fromNum && this.toNum;
-      idx = del(o, 'index');
-      idxName = del(o, 'name');
-      namedIndex = idxName && idxName !== idx;
-      varPart = "" + idx + " = " + this.fromC;
-      if (this.toC !== this.toVar) {
-        varPart += ", " + this.toC;
-      }
-      if (this.step !== this.stepVar) {
-        varPart += ", " + this.step;
-      }
-      _ref2 = ["" + idx + " <" + this.equals, "" + idx + " >" + this.equals], lt = _ref2[0], gt = _ref2[1];
-      condPart = this.stepNum ? parseNum(this.stepNum[0]) > 0 ? "" + lt + " " + this.toVar : "" + gt + " " + this.toVar : known ? ((_ref3 = [parseNum(this.fromNum[0]), parseNum(this.toNum[0])], from = _ref3[0], to = _ref3[1], _ref3), from <= to ? "" + lt + " " + to : "" + gt + " " + to) : (cond = this.stepVar ? "" + this.stepVar + " > 0" : "" + this.fromVar + " <= " + this.toVar, "" + cond + " ? " + lt + " " + this.toVar + " : " + gt + " " + this.toVar);
-      stepPart = this.stepVar ? "" + idx + " += " + this.stepVar : known ? namedIndex ? from <= to ? "++" + idx : "--" + idx : from <= to ? "" + idx + "++" : "" + idx + "--" : namedIndex ? "" + cond + " ? ++" + idx + " : --" + idx : "" + cond + " ? " + idx + "++ : " + idx + "--";
-      if (namedIndex) {
-        varPart = "" + idxName + " = " + varPart;
-      }
-      if (namedIndex) {
-        stepPart = "" + idxName + " = " + stepPart;
-      }
-      return [this.makeCode("" + varPart + "; " + condPart + "; " + stepPart)];
-    };
-
-    Range.prototype.compileArray = function(o) {
-      var args, body, cond, hasArgs, i, idt, post, pre, range, result, vars, _i, _ref2, _ref3, _results;
-      if (this.fromNum && this.toNum && Math.abs(this.fromNum - this.toNum) <= 20) {
-        range = (function() {
-          _results = [];
-          for (var _i = _ref2 = +this.fromNum, _ref3 = +this.toNum; _ref2 <= _ref3 ? _i <= _ref3 : _i >= _ref3; _ref2 <= _ref3 ? _i++ : _i--){ _results.push(_i); }
-          return _results;
-        }).apply(this);
-        if (this.exclusive) {
-          range.pop();
-        }
-        return [this.makeCode("[" + (range.join(', ')) + "]")];
-      }
-      idt = this.tab + TAB;
-      i = o.scope.freeVariable('i');
-      result = o.scope.freeVariable('results');
-      pre = "\n" + idt + result + " = [];";
-      if (this.fromNum && this.toNum) {
-        o.index = i;
-        body = fragmentsToText(this.compileNode(o));
-      } else {
-        vars = ("" + i + " = " + this.fromC) + (this.toC !== this.toVar ? ", " + this.toC : '');
-        cond = "" + this.fromVar + " <= " + this.toVar;
-        body = "var " + vars + "; " + cond + " ? " + i + " <" + this.equals + " " + this.toVar + " : " + i + " >" + this.equals + " " + this.toVar + "; " + cond + " ? " + i + "++ : " + i + "--";
-      }
-      post = "{ " + result + ".push(" + i + "); }\n" + idt + "return " + result + ";\n" + o.indent;
-      hasArgs = function(node) {
-        return node != null ? node.contains(isLiteralArguments) : void 0;
-      };
-      if (hasArgs(this.from) || hasArgs(this.to)) {
-        args = ', arguments';
-      }
-      return [this.makeCode("(function() {" + pre + "\n" + idt + "for (" + body + ")" + post + "}).apply(this" + (args != null ? args : '') + ")")];
-    };
-
-    return Range;
-
-  })(Base);
-
-  exports.Slice = Slice = (function(_super) {
-    __extends(Slice, _super);
-
-    Slice.prototype.children = ['range'];
-
-    function Slice(range) {
-      this.range = range;
-      Slice.__super__.constructor.call(this);
-    }
-
-    Slice.prototype.compileNode = function(o) {
-      var compiled, compiledText, from, fromCompiled, to, toStr, _ref2;
-      _ref2 = this.range, to = _ref2.to, from = _ref2.from;
-      fromCompiled = from && from.compileToFragments(o, LEVEL_PAREN) || [this.makeCode('0')];
-      if (to) {
-        compiled = to.compileToFragments(o, LEVEL_PAREN);
-        compiledText = fragmentsToText(compiled);
-        if (!(!this.range.exclusive && +compiledText === -1)) {
-          toStr = ', ' + (this.range.exclusive ? compiledText : SIMPLENUM.test(compiledText) ? "" + (+compiledText + 1) : (compiled = to.compileToFragments(o, LEVEL_ACCESS), "+" + (fragmentsToText(compiled)) + " + 1 || 9e9"));
-        }
-      }
-      return [this.makeCode(".slice(" + (fragmentsToText(fromCompiled)) + (toStr || '') + ")")];
-    };
-
-    return Slice;
-
-  })(Base);
-
-  exports.Obj = Obj = (function(_super) {
-    __extends(Obj, _super);
-
-    function Obj(props, generated) {
-      this.generated = generated != null ? generated : false;
-      this.objects = this.properties = props || [];
-    }
-
-    Obj.prototype.children = ['properties'];
-
-    Obj.prototype.compileNode = function(o) {
-      var answer, i, idt, indent, join, lastNoncom, node, prop, props, _i, _j, _len, _len1;
-      props = this.properties;
-      if (!props.length) {
-        return [this.makeCode(this.front ? '({})' : '{}')];
-      }
-      if (this.generated) {
-        for (_i = 0, _len = props.length; _i < _len; _i++) {
-          node = props[_i];
-          if (node instanceof Value) {
-            node.error('cannot have an implicit value in an implicit object');
-          }
-        }
-      }
-      idt = o.indent += TAB;
-      lastNoncom = this.lastNonComment(this.properties);
-      answer = [];
-      for (i = _j = 0, _len1 = props.length; _j < _len1; i = ++_j) {
-        prop = props[i];
-        join = i === props.length - 1 ? '' : prop === lastNoncom || prop instanceof Comment ? '\n' : ',\n';
-        indent = prop instanceof Comment ? '' : idt;
-        if (prop instanceof Assign && prop.variable instanceof Value && prop.variable.hasProperties()) {
-          prop.variable.error('Invalid object key');
-        }
-        if (prop instanceof Value && prop["this"]) {
-          prop = new Assign(prop.properties[0].name, prop, 'object');
-        }
-        if (!(prop instanceof Comment)) {
-          if (!(prop instanceof Assign)) {
-            prop = new Assign(prop, prop, 'object');
-          }
-          (prop.variable.base || prop.variable).asKey = true;
-        }
-        if (indent) {
-          answer.push(this.makeCode(indent));
-        }
-        answer.push.apply(answer, prop.compileToFragments(o, LEVEL_TOP));
-        if (join) {
-          answer.push(this.makeCode(join));
-        }
-      }
-      answer.unshift(this.makeCode("{" + (props.length && '\n')));
-      answer.push(this.makeCode("" + (props.length && '\n' + this.tab) + "}"));
-      if (this.front) {
-        return this.wrapInBraces(answer);
-      } else {
-        return answer;
-      }
-    };
-
-    Obj.prototype.assigns = function(name) {
-      var prop, _i, _len, _ref2;
-      _ref2 = this.properties;
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        prop = _ref2[_i];
-        if (prop.assigns(name)) {
-          return true;
-        }
-      }
-      return false;
-    };
-
-    return Obj;
-
-  })(Base);
-
-  exports.Arr = Arr = (function(_super) {
-    __extends(Arr, _super);
-
-    function Arr(objs) {
-      this.objects = objs || [];
-    }
-
-    Arr.prototype.children = ['objects'];
-
-    Arr.prototype.compileNode = function(o) {
-      var answer, compiledObjs, fragments, index, obj, _i, _len;
-      if (!this.objects.length) {
-        return [this.makeCode('[]')];
-      }
-      o.indent += TAB;
-      answer = Splat.compileSplattedArray(o, this.objects);
-      if (answer.length) {
-        return answer;
-      }
-      answer = [];
-      compiledObjs = (function() {
-        var _i, _len, _ref2, _results;
-        _ref2 = this.objects;
-        _results = [];
-        for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-          obj = _ref2[_i];
-          _results.push(obj.compileToFragments(o, LEVEL_LIST));
-        }
-        return _results;
-      }).call(this);
-      for (index = _i = 0, _len = compiledObjs.length; _i < _len; index = ++_i) {
-        fragments = compiledObjs[index];
-        if (index) {
-          answer.push(this.makeCode(", "));
-        }
-        answer.push.apply(answer, fragments);
-      }
-      if (fragmentsToText(answer).indexOf('\n') >= 0) {
-        answer.unshift(this.makeCode("[\n" + o.indent));
-        answer.push(this.makeCode("\n" + this.tab + "]"));
-      } else {
-        answer.unshift(this.makeCode("["));
-        answer.push(this.makeCode("]"));
-      }
-      return answer;
-    };
-
-    Arr.prototype.assigns = function(name) {
-      var obj, _i, _len, _ref2;
-      _ref2 = this.objects;
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        obj = _ref2[_i];
-        if (obj.assigns(name)) {
-          return true;
-        }
-      }
-      return false;
-    };
-
-    return Arr;
-
-  })(Base);
-
-  exports.Class = Class = (function(_super) {
-    __extends(Class, _super);
-
-    function Class(variable, parent, body) {
-      this.variable = variable;
-      this.parent = parent;
-      this.body = body != null ? body : new Block;
-      this.boundFuncs = [];
-      this.body.classBody = true;
-    }
-
-    Class.prototype.children = ['variable', 'parent', 'body'];
-
-    Class.prototype.determineName = function() {
-      var decl, tail;
-      if (!this.variable) {
-        return null;
-      }
-      decl = (tail = last(this.variable.properties)) ? tail instanceof Access && tail.name.value : this.variable.base.value;
-      if (__indexOf.call(STRICT_PROSCRIBED, decl) >= 0) {
-        this.variable.error("class variable name may not be " + decl);
-      }
-      return decl && (decl = IDENTIFIER.test(decl) && decl);
-    };
-
-    Class.prototype.setContext = function(name) {
-      return this.body.traverseChildren(false, function(node) {
-        if (node.classBody) {
-          return false;
-        }
-        if (node instanceof Literal && node.value === 'this') {
-          return node.value = name;
-        } else if (node instanceof Code) {
-          node.klass = name;
-          if (node.bound) {
-            return node.context = name;
-          }
-        }
-      });
-    };
-
-    Class.prototype.addBoundFunctions = function(o) {
-      var bvar, lhs, _i, _len, _ref2;
-      _ref2 = this.boundFuncs;
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        bvar = _ref2[_i];
-        lhs = (new Value(new Literal("this"), [new Access(bvar)])).compile(o);
-        this.ctor.body.unshift(new Literal("" + lhs + " = " + (utility('bind')) + "(" + lhs + ", this)"));
-      }
-    };
-
-    Class.prototype.addProperties = function(node, name, o) {
-      var assign, base, exprs, func, props;
-      props = node.base.properties.slice(0);
-      exprs = (function() {
-        var _results;
-        _results = [];
-        while (assign = props.shift()) {
-          if (assign instanceof Assign) {
-            base = assign.variable.base;
-            delete assign.context;
-            func = assign.value;
-            if (base.value === 'constructor') {
-              if (this.ctor) {
-                assign.error('cannot define more than one constructor in a class');
-              }
-              if (func.bound) {
-                assign.error('cannot define a constructor as a bound function');
-              }
-              if (func instanceof Code) {
-                assign = this.ctor = func;
-              } else {
-                this.externalCtor = o.classScope.freeVariable('class');
-                assign = new Assign(new Literal(this.externalCtor), func);
-              }
-            } else {
-              if (assign.variable["this"]) {
-                func["static"] = true;
-              } else {
-                assign.variable = new Value(new Literal(name), [new Access(new Literal('prototype')), new Access(base)]);
-                if (func instanceof Code && func.bound) {
-                  this.boundFuncs.push(base);
-                  func.bound = false;
-                }
-              }
-            }
-          }
-          _results.push(assign);
-        }
-        return _results;
-      }).call(this);
-      return compact(exprs);
-    };
-
-    Class.prototype.walkBody = function(name, o) {
-      return this.traverseChildren(false, (function(_this) {
-        return function(child) {
-          var cont, exps, i, node, _i, _len, _ref2;
-          cont = true;
-          if (child instanceof Class) {
-            return false;
-          }
-          if (child instanceof Block) {
-            _ref2 = exps = child.expressions;
-            for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) {
-              node = _ref2[i];
-              if (node instanceof Assign && node.variable.looksStatic(name)) {
-                node.value["static"] = true;
-              } else if (node instanceof Value && node.isObject(true)) {
-                cont = false;
-                exps[i] = _this.addProperties(node, name, o);
-              }
-            }
-            child.expressions = exps = flatten(exps);
-          }
-          return cont && !(child instanceof Class);
-        };
-      })(this));
-    };
-
-    Class.prototype.hoistDirectivePrologue = function() {
-      var expressions, index, node;
-      index = 0;
-      expressions = this.body.expressions;
-      while ((node = expressions[index]) && node instanceof Comment || node instanceof Value && node.isString()) {
-        ++index;
-      }
-      return this.directives = expressions.splice(0, index);
-    };
-
-    Class.prototype.ensureConstructor = function(name) {
-      if (!this.ctor) {
-        this.ctor = new Code;
-        if (this.externalCtor) {
-          this.ctor.body.push(new Literal("" + this.externalCtor + ".apply(this, arguments)"));
-        } else if (this.parent) {
-          this.ctor.body.push(new Literal("" + name + ".__super__.constructor.apply(this, arguments)"));
-        }
-        this.ctor.body.makeReturn();
-        this.body.expressions.unshift(this.ctor);
-      }
-      this.ctor.ctor = this.ctor.name = name;
-      this.ctor.klass = null;
-      return this.ctor.noReturn = true;
-    };
-
-    Class.prototype.compileNode = function(o) {
-      var args, argumentsNode, func, jumpNode, klass, lname, name, superClass, _ref2;
-      if (jumpNode = this.body.jumps()) {
-        jumpNode.error('Class bodies cannot contain pure statements');
-      }
-      if (argumentsNode = this.body.contains(isLiteralArguments)) {
-        argumentsNode.error("Class bodies shouldn't reference arguments");
-      }
-      name = this.determineName() || '_Class';
-      if (name.reserved) {
-        name = "_" + name;
-      }
-      lname = new Literal(name);
-      func = new Code([], Block.wrap([this.body]));
-      args = [];
-      o.classScope = func.makeScope(o.scope);
-      this.hoistDirectivePrologue();
-      this.setContext(name);
-      this.walkBody(name, o);
-      this.ensureConstructor(name);
-      this.addBoundFunctions(o);
-      this.body.spaced = true;
-      this.body.expressions.push(lname);
-      if (this.parent) {
-        superClass = new Literal(o.classScope.freeVariable('super', false));
-        this.body.expressions.unshift(new Extends(lname, superClass));
-        func.params.push(new Param(superClass));
-        args.push(this.parent);
-      }
-      (_ref2 = this.body.expressions).unshift.apply(_ref2, this.directives);
-      klass = new Parens(new Call(func, args));
-      if (this.variable) {
-        klass = new Assign(this.variable, klass);
-      }
-      return klass.compileToFragments(o);
-    };
-
-    return Class;
-
-  })(Base);
-
-  exports.Assign = Assign = (function(_super) {
-    __extends(Assign, _super);
-
-    function Assign(variable, value, context, options) {
-      var forbidden, name, _ref2;
-      this.variable = variable;
-      this.value = value;
-      this.context = context;
-      this.param = options && options.param;
-      this.subpattern = options && options.subpattern;
-      forbidden = (_ref2 = (name = this.variable.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref2) >= 0);
-      if (forbidden && this.context !== 'object') {
-        this.variable.error("variable name may not be \"" + name + "\"");
-      }
-    }
-
-    Assign.prototype.children = ['variable', 'value'];
-
-    Assign.prototype.isStatement = function(o) {
-      return (o != null ? o.level : void 0) === LEVEL_TOP && (this.context != null) && __indexOf.call(this.context, "?") >= 0;
-    };
-
-    Assign.prototype.assigns = function(name) {
-      return this[this.context === 'object' ? 'value' : 'variable'].assigns(name);
-    };
-
-    Assign.prototype.unfoldSoak = function(o) {
-      return unfoldSoak(o, this, 'variable');
-    };
-
-    Assign.prototype.compileNode = function(o) {
-      var answer, compiledName, isValue, match, name, val, varBase, _ref2, _ref3, _ref4, _ref5;
-      if (isValue = this.variable instanceof Value) {
-        if (this.variable.isArray() || this.variable.isObject()) {
-          return this.compilePatternMatch(o);
-        }
-        if (this.variable.isSplice()) {
-          return this.compileSplice(o);
-        }
-        if ((_ref2 = this.context) === '||=' || _ref2 === '&&=' || _ref2 === '?=') {
-          return this.compileConditional(o);
-        }
-        if ((_ref3 = this.context) === '**=' || _ref3 === '//=' || _ref3 === '%%=') {
-          return this.compileSpecialMath(o);
-        }
-      }
-      compiledName = this.variable.compileToFragments(o, LEVEL_LIST);
-      name = fragmentsToText(compiledName);
-      if (!this.context) {
-        varBase = this.variable.unwrapAll();
-        if (!varBase.isAssignable()) {
-          this.variable.error("\"" + (this.variable.compile(o)) + "\" cannot be assigned");
-        }
-        if (!(typeof varBase.hasProperties === "function" ? varBase.hasProperties() : void 0)) {
-          if (this.param) {
-            o.scope.add(name, 'var');
-          } else {
-            o.scope.find(name);
-          }
-        }
-      }
-      if (this.value instanceof Code && (match = METHOD_DEF.exec(name))) {
-        if (match[2]) {
-          this.value.klass = match[1];
-        }
-        this.value.name = (_ref4 = (_ref5 = match[3]) != null ? _ref5 : match[4]) != null ? _ref4 : match[5];
-      }
-      val = this.value.compileToFragments(o, LEVEL_LIST);
-      if (this.context === 'object') {
-        return compiledName.concat(this.makeCode(": "), val);
-      }
-      answer = compiledName.concat(this.makeCode(" " + (this.context || '=') + " "), val);
-      if (o.level <= LEVEL_LIST) {
-        return answer;
-      } else {
-        return this.wrapInBraces(answer);
-      }
-    };
-
-    Assign.prototype.compilePatternMatch = function(o) {
-      var acc, assigns, code, expandedIdx, fragments, i, idx, isObject, ivar, name, obj, objects, olen, ref, rest, top, val, value, vvar, vvarText, _i, _len, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7;
-      top = o.level === LEVEL_TOP;
-      value = this.value;
-      objects = this.variable.base.objects;
-      if (!(olen = objects.length)) {
-        code = value.compileToFragments(o);
-        if (o.level >= LEVEL_OP) {
-          return this.wrapInBraces(code);
-        } else {
-          return code;
-        }
-      }
-      isObject = this.variable.isObject();
-      if (top && olen === 1 && !((obj = objects[0]) instanceof Splat)) {
-        if (obj instanceof Assign) {
-          _ref2 = obj, (_ref3 = _ref2.variable, idx = _ref3.base), obj = _ref2.value;
-        } else {
-          idx = isObject ? obj["this"] ? obj.properties[0].name : obj : new Literal(0);
-        }
-        acc = IDENTIFIER.test(idx.unwrap().value || 0);
-        value = new Value(value);
-        value.properties.push(new (acc ? Access : Index)(idx));
-        if (_ref4 = obj.unwrap().value, __indexOf.call(RESERVED, _ref4) >= 0) {
-          obj.error("assignment to a reserved word: " + (obj.compile(o)));
-        }
-        return new Assign(obj, value, null, {
-          param: this.param
-        }).compileToFragments(o, LEVEL_TOP);
-      }
-      vvar = value.compileToFragments(o, LEVEL_LIST);
-      vvarText = fragmentsToText(vvar);
-      assigns = [];
-      expandedIdx = false;
-      if (!IDENTIFIER.test(vvarText) || this.variable.assigns(vvarText)) {
-        assigns.push([this.makeCode("" + (ref = o.scope.freeVariable('ref')) + " = ")].concat(__slice.call(vvar)));
-        vvar = [this.makeCode(ref)];
-        vvarText = ref;
-      }
-      for (i = _i = 0, _len = objects.length; _i < _len; i = ++_i) {
-        obj = objects[i];
-        idx = i;
-        if (isObject) {
-          if (obj instanceof Assign) {
-            _ref5 = obj, (_ref6 = _ref5.variable, idx = _ref6.base), obj = _ref5.value;
-          } else {
-            if (obj.base instanceof Parens) {
-              _ref7 = new Value(obj.unwrapAll()).cacheReference(o), obj = _ref7[0], idx = _ref7[1];
-            } else {
-              idx = obj["this"] ? obj.properties[0].name : obj;
-            }
-          }
-        }
-        if (!expandedIdx && obj instanceof Splat) {
-          name = obj.name.unwrap().value;
-          obj = obj.unwrap();
-          val = "" + olen + " <= " + vvarText + ".length ? " + (utility('slice')) + ".call(" + vvarText + ", " + i;
-          if (rest = olen - i - 1) {
-            ivar = o.scope.freeVariable('i');
-            val += ", " + ivar + " = " + vvarText + ".length - " + rest + ") : (" + ivar + " = " + i + ", [])";
-          } else {
-            val += ") : []";
-          }
-          val = new Literal(val);
-          expandedIdx = "" + ivar + "++";
-        } else if (!expandedIdx && obj instanceof Expansion) {
-          if (rest = olen - i - 1) {
-            if (rest === 1) {
-              expandedIdx = "" + vvarText + ".length - 1";
-            } else {
-              ivar = o.scope.freeVariable('i');
-              val = new Literal("" + ivar + " = " + vvarText + ".length - " + rest);
-              expandedIdx = "" + ivar + "++";
-              assigns.push(val.compileToFragments(o, LEVEL_LIST));
-            }
-          }
-          continue;
-        } else {
-          name = obj.unwrap().value;
-          if (obj instanceof Splat || obj instanceof Expansion) {
-            obj.error("multiple splats/expansions are disallowed in an assignment");
-          }
-          if (typeof idx === 'number') {
-            idx = new Literal(expandedIdx || idx);
-            acc = false;
-          } else {
-            acc = isObject && IDENTIFIER.test(idx.unwrap().value || 0);
-          }
-          val = new Value(new Literal(vvarText), [new (acc ? Access : Index)(idx)]);
-        }
-        if ((name != null) && __indexOf.call(RESERVED, name) >= 0) {
-          obj.error("assignment to a reserved word: " + (obj.compile(o)));
-        }
-        assigns.push(new Assign(obj, val, null, {
-          param: this.param,
-          subpattern: true
-        }).compileToFragments(o, LEVEL_LIST));
-      }
-      if (!(top || this.subpattern)) {
-        assigns.push(vvar);
-      }
-      fragments = this.joinFragmentArrays(assigns, ', ');
-      if (o.level < LEVEL_LIST) {
-        return fragments;
-      } else {
-        return this.wrapInBraces(fragments);
-      }
-    };
-
-    Assign.prototype.compileConditional = function(o) {
-      var fragments, left, right, _ref2;
-      _ref2 = this.variable.cacheReference(o), left = _ref2[0], right = _ref2[1];
-      if (!left.properties.length && left.base instanceof Literal && left.base.value !== "this" && !o.scope.check(left.base.value)) {
-        this.variable.error("the variable \"" + left.base.value + "\" can't be assigned with " + this.context + " because it has not been declared before");
-      }
-      if (__indexOf.call(this.context, "?") >= 0) {
-        o.isExistentialEquals = true;
-        return new If(new Existence(left), right, {
-          type: 'if'
-        }).addElse(new Assign(right, this.value, '=')).compileToFragments(o);
-      } else {
-        fragments = new Op(this.context.slice(0, -1), left, new Assign(right, this.value, '=')).compileToFragments(o);
-        if (o.level <= LEVEL_LIST) {
-          return fragments;
-        } else {
-          return this.wrapInBraces(fragments);
-        }
-      }
-    };
-
-    Assign.prototype.compileSpecialMath = function(o) {
-      var left, right, _ref2;
-      _ref2 = this.variable.cacheReference(o), left = _ref2[0], right = _ref2[1];
-      return new Assign(left, new Op(this.context.slice(0, -1), right, this.value)).compileToFragments(o);
-    };
-
-    Assign.prototype.compileSplice = function(o) {
-      var answer, exclusive, from, fromDecl, fromRef, name, to, valDef, valRef, _ref2, _ref3, _ref4;
-      _ref2 = this.variable.properties.pop().range, from = _ref2.from, to = _ref2.to, exclusive = _ref2.exclusive;
-      name = this.variable.compile(o);
-      if (from) {
-        _ref3 = this.cacheToCodeFragments(from.cache(o, LEVEL_OP)), fromDecl = _ref3[0], fromRef = _ref3[1];
-      } else {
-        fromDecl = fromRef = '0';
-      }
-      if (to) {
-        if (from instanceof Value && from.isSimpleNumber() && to instanceof Value && to.isSimpleNumber()) {
-          to = to.compile(o) - fromRef;
-          if (!exclusive) {
-            to += 1;
-          }
-        } else {
-          to = to.compile(o, LEVEL_ACCESS) + ' - ' + fromRef;
-          if (!exclusive) {
-            to += ' + 1';
-          }
-        }
-      } else {
-        to = "9e9";
-      }
-      _ref4 = this.value.cache(o, LEVEL_LIST), valDef = _ref4[0], valRef = _ref4[1];
-      answer = [].concat(this.makeCode("[].splice.apply(" + name + ", [" + fromDecl + ", " + to + "].concat("), valDef, this.makeCode(")), "), valRef);
-      if (o.level > LEVEL_TOP) {
-        return this.wrapInBraces(answer);
-      } else {
-        return answer;
-      }
-    };
-
-    return Assign;
-
-  })(Base);
-
-  exports.Code = Code = (function(_super) {
-    __extends(Code, _super);
-
-    function Code(params, body, tag) {
-      this.params = params || [];
-      this.body = body || new Block;
-      this.bound = tag === 'boundfunc';
-    }
-
-    Code.prototype.children = ['params', 'body'];
-
-    Code.prototype.isStatement = function() {
-      return !!this.ctor;
-    };
-
-    Code.prototype.jumps = NO;
-
-    Code.prototype.makeScope = function(parentScope) {
-      return new Scope(parentScope, this.body, this);
-    };
-
-    Code.prototype.compileNode = function(o) {
-      var answer, boundfunc, code, exprs, i, lit, p, param, params, ref, splats, uniqs, val, wasEmpty, wrapper, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _len5, _m, _n, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7;
-      if (this.bound && ((_ref2 = o.scope.method) != null ? _ref2.bound : void 0)) {
-        this.context = o.scope.method.context;
-      }
-      if (this.bound && !this.context) {
-        this.context = '_this';
-        wrapper = new Code([new Param(new Literal(this.context))], new Block([this]));
-        boundfunc = new Call(wrapper, [new Literal('this')]);
-        boundfunc.updateLocationDataIfMissing(this.locationData);
-        return boundfunc.compileNode(o);
-      }
-      o.scope = del(o, 'classScope') || this.makeScope(o.scope);
-      o.scope.shared = del(o, 'sharedScope');
-      o.indent += TAB;
-      delete o.bare;
-      delete o.isExistentialEquals;
-      params = [];
-      exprs = [];
-      _ref3 = this.params;
-      for (_i = 0, _len = _ref3.length; _i < _len; _i++) {
-        param = _ref3[_i];
-        if (!(param instanceof Expansion)) {
-          o.scope.parameter(param.asReference(o));
-        }
-      }
-      _ref4 = this.params;
-      for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) {
-        param = _ref4[_j];
-        if (!(param.splat || param instanceof Expansion)) {
-          continue;
-        }
-        _ref5 = this.params;
-        for (_k = 0, _len2 = _ref5.length; _k < _len2; _k++) {
-          p = _ref5[_k].name;
-          if (!(!(param instanceof Expansion))) {
-            continue;
-          }
-          if (p["this"]) {
-            p = p.properties[0].name;
-          }
-          if (p.value) {
-            o.scope.add(p.value, 'var', true);
-          }
-        }
-        splats = new Assign(new Value(new Arr((function() {
-          var _l, _len3, _ref6, _results;
-          _ref6 = this.params;
-          _results = [];
-          for (_l = 0, _len3 = _ref6.length; _l < _len3; _l++) {
-            p = _ref6[_l];
-            _results.push(p.asReference(o));
-          }
-          return _results;
-        }).call(this))), new Value(new Literal('arguments')));
-        break;
-      }
-      _ref6 = this.params;
-      for (_l = 0, _len3 = _ref6.length; _l < _len3; _l++) {
-        param = _ref6[_l];
-        if (param.isComplex()) {
-          val = ref = param.asReference(o);
-          if (param.value) {
-            val = new Op('?', ref, param.value);
-          }
-          exprs.push(new Assign(new Value(param.name), val, '=', {
-            param: true
-          }));
-        } else {
-          ref = param;
-          if (param.value) {
-            lit = new Literal(ref.name.value + ' == null');
-            val = new Assign(new Value(param.name), param.value, '=');
-            exprs.push(new If(lit, val));
-          }
-        }
-        if (!splats) {
-          params.push(ref);
-        }
-      }
-      wasEmpty = this.body.isEmpty();
-      if (splats) {
-        exprs.unshift(splats);
-      }
-      if (exprs.length) {
-        (_ref7 = this.body.expressions).unshift.apply(_ref7, exprs);
-      }
-      for (i = _m = 0, _len4 = params.length; _m < _len4; i = ++_m) {
-        p = params[i];
-        params[i] = p.compileToFragments(o);
-        o.scope.parameter(fragmentsToText(params[i]));
-      }
-      uniqs = [];
-      this.eachParamName(function(name, node) {
-        if (__indexOf.call(uniqs, name) >= 0) {
-          node.error("multiple parameters named '" + name + "'");
-        }
-        return uniqs.push(name);
-      });
-      if (!(wasEmpty || this.noReturn)) {
-        this.body.makeReturn();
-      }
-      code = 'function';
-      if (this.ctor) {
-        code += ' ' + this.name;
-      }
-      code += '(';
-      answer = [this.makeCode(code)];
-      for (i = _n = 0, _len5 = params.length; _n < _len5; i = ++_n) {
-        p = params[i];
-        if (i) {
-          answer.push(this.makeCode(", "));
-        }
-        answer.push.apply(answer, p);
-      }
-      answer.push(this.makeCode(') {'));
-      if (!this.body.isEmpty()) {
-        answer = answer.concat(this.makeCode("\n"), this.body.compileWithDeclarations(o), this.makeCode("\n" + this.tab));
-      }
-      answer.push(this.makeCode('}'));
-      if (this.ctor) {
-        return [this.makeCode(this.tab)].concat(__slice.call(answer));
-      }
-      if (this.front || (o.level >= LEVEL_ACCESS)) {
-        return this.wrapInBraces(answer);
-      } else {
-        return answer;
-      }
-    };
-
-    Code.prototype.eachParamName = function(iterator) {
-      var param, _i, _len, _ref2, _results;
-      _ref2 = this.params;
-      _results = [];
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        param = _ref2[_i];
-        _results.push(param.eachName(iterator));
-      }
-      return _results;
-    };
-
-    Code.prototype.traverseChildren = function(crossScope, func) {
-      if (crossScope) {
-        return Code.__super__.traverseChildren.call(this, crossScope, func);
-      }
-    };
-
-    return Code;
-
-  })(Base);
-
-  exports.Param = Param = (function(_super) {
-    __extends(Param, _super);
-
-    function Param(name, value, splat) {
-      var _ref2;
-      this.name = name;
-      this.value = value;
-      this.splat = splat;
-      if (_ref2 = (name = this.name.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref2) >= 0) {
-        this.name.error("parameter name \"" + name + "\" is not allowed");
-      }
-    }
-
-    Param.prototype.children = ['name', 'value'];
-
-    Param.prototype.compileToFragments = function(o) {
-      return this.name.compileToFragments(o, LEVEL_LIST);
-    };
-
-    Param.prototype.asReference = function(o) {
-      var node;
-      if (this.reference) {
-        return this.reference;
-      }
-      node = this.name;
-      if (node["this"]) {
-        node = node.properties[0].name;
-        if (node.value.reserved) {
-          node = new Literal(o.scope.freeVariable(node.value));
-        }
-      } else if (node.isComplex()) {
-        node = new Literal(o.scope.freeVariable('arg'));
-      }
-      node = new Value(node);
-      if (this.splat) {
-        node = new Splat(node);
-      }
-      node.updateLocationDataIfMissing(this.locationData);
-      return this.reference = node;
-    };
-
-    Param.prototype.isComplex = function() {
-      return this.name.isComplex();
-    };
-
-    Param.prototype.eachName = function(iterator, name) {
-      var atParam, node, obj, _i, _len, _ref2;
-      if (name == null) {
-        name = this.name;
-      }
-      atParam = function(obj) {
-        var node;
-        node = obj.properties[0].name;
-        if (!node.value.reserved) {
-          return iterator(node.value, node);
-        }
-      };
-      if (name instanceof Literal) {
-        return iterator(name.value, name);
-      }
-      if (name instanceof Value) {
-        return atParam(name);
-      }
-      _ref2 = name.objects;
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        obj = _ref2[_i];
-        if (obj instanceof Assign) {
-          this.eachName(iterator, obj.value.unwrap());
-        } else if (obj instanceof Splat) {
-          node = obj.name.unwrap();
-          iterator(node.value, node);
-        } else if (obj instanceof Value) {
-          if (obj.isArray() || obj.isObject()) {
-            this.eachName(iterator, obj.base);
-          } else if (obj["this"]) {
-            atParam(obj);
-          } else {
-            iterator(obj.base.value, obj.base);
-          }
-        } else if (!(obj instanceof Expansion)) {
-          obj.error("illegal parameter " + (obj.compile()));
-        }
-      }
-    };
-
-    return Param;
-
-  })(Base);
-
-  exports.Splat = Splat = (function(_super) {
-    __extends(Splat, _super);
-
-    Splat.prototype.children = ['name'];
-
-    Splat.prototype.isAssignable = YES;
-
-    function Splat(name) {
-      this.name = name.compile ? name : new Literal(name);
-    }
-
-    Splat.prototype.assigns = function(name) {
-      return this.name.assigns(name);
-    };
-
-    Splat.prototype.compileToFragments = function(o) {
-      return this.name.compileToFragments(o);
-    };
-
-    Splat.prototype.unwrap = function() {
-      return this.name;
-    };
-
-    Splat.compileSplattedArray = function(o, list, apply) {
-      var args, base, compiledNode, concatPart, fragments, i, index, node, _i, _len;
-      index = -1;
-      while ((node = list[++index]) && !(node instanceof Splat)) {
-        continue;
-      }
-      if (index >= list.length) {
-        return [];
-      }
-      if (list.length === 1) {
-        node = list[0];
-        fragments = node.compileToFragments(o, LEVEL_LIST);
-        if (apply) {
-          return fragments;
-        }
-        return [].concat(node.makeCode("" + (utility('slice')) + ".call("), fragments, node.makeCode(")"));
-      }
-      args = list.slice(index);
-      for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) {
-        node = args[i];
-        compiledNode = node.compileToFragments(o, LEVEL_LIST);
-        args[i] = node instanceof Splat ? [].concat(node.makeCode("" + (utility('slice')) + ".call("), compiledNode, node.makeCode(")")) : [].concat(node.makeCode("["), compiledNode, node.makeCode("]"));
-      }
-      if (index === 0) {
-        node = list[0];
-        concatPart = node.joinFragmentArrays(args.slice(1), ', ');
-        return args[0].concat(node.makeCode(".concat("), concatPart, node.makeCode(")"));
-      }
-      base = (function() {
-        var _j, _len1, _ref2, _results;
-        _ref2 = list.slice(0, index);
-        _results = [];
-        for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
-          node = _ref2[_j];
-          _results.push(node.compileToFragments(o, LEVEL_LIST));
-        }
-        return _results;
-      })();
-      base = list[0].joinFragmentArrays(base, ', ');
-      concatPart = list[index].joinFragmentArrays(args, ', ');
-      return [].concat(list[0].makeCode("["), base, list[index].makeCode("].concat("), concatPart, (last(list)).makeCode(")"));
-    };
-
-    return Splat;
-
-  })(Base);
-
-  exports.Expansion = Expansion = (function(_super) {
-    __extends(Expansion, _super);
-
-    function Expansion() {
-      return Expansion.__super__.constructor.apply(this, arguments);
-    }
-
-    Expansion.prototype.isComplex = NO;
-
-    Expansion.prototype.compileNode = function(o) {
-      return this.error('Expansion must be used inside a destructuring assignment or parameter list');
-    };
-
-    Expansion.prototype.asReference = function(o) {
-      return this;
-    };
-
-    Expansion.prototype.eachName = function(iterator) {};
-
-    return Expansion;
-
-  })(Base);
-
-  exports.While = While = (function(_super) {
-    __extends(While, _super);
-
-    function While(condition, options) {
-      this.condition = (options != null ? options.invert : void 0) ? condition.invert() : condition;
-      this.guard = options != null ? options.guard : void 0;
-    }
-
-    While.prototype.children = ['condition', 'guard', 'body'];
-
-    While.prototype.isStatement = YES;
-
-    While.prototype.makeReturn = function(res) {
-      if (res) {
-        return While.__super__.makeReturn.apply(this, arguments);
-      } else {
-        this.returns = !this.jumps({
-          loop: true
-        });
-        return this;
-      }
-    };
-
-    While.prototype.addBody = function(body) {
-      this.body = body;
-      return this;
-    };
-
-    While.prototype.jumps = function() {
-      var expressions, jumpNode, node, _i, _len;
-      expressions = this.body.expressions;
-      if (!expressions.length) {
-        return false;
-      }
-      for (_i = 0, _len = expressions.length; _i < _len; _i++) {
-        node = expressions[_i];
-        if (jumpNode = node.jumps({
-          loop: true
-        })) {
-          return jumpNode;
-        }
-      }
-      return false;
-    };
-
-    While.prototype.compileNode = function(o) {
-      var answer, body, rvar, set;
-      o.indent += TAB;
-      set = '';
-      body = this.body;
-      if (body.isEmpty()) {
-        body = this.makeCode('');
-      } else {
-        if (this.returns) {
-          body.makeReturn(rvar = o.scope.freeVariable('results'));
-          set = "" + this.tab + rvar + " = [];\n";
-        }
-        if (this.guard) {
-          if (body.expressions.length > 1) {
-            body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue")));
-          } else {
-            if (this.guard) {
-              body = Block.wrap([new If(this.guard, body)]);
-            }
-          }
-        }
-        body = [].concat(this.makeCode("\n"), body.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab));
-      }
-      answer = [].concat(this.makeCode(set + this.tab + "while ("), this.condition.compileToFragments(o, LEVEL_PAREN), this.makeCode(") {"), body, this.makeCode("}"));
-      if (this.returns) {
-        answer.push(this.makeCode("\n" + this.tab + "return " + rvar + ";"));
-      }
-      return answer;
-    };
-
-    return While;
-
-  })(Base);
-
-  exports.Op = Op = (function(_super) {
-    var CONVERSIONS, INVERSIONS;
-
-    __extends(Op, _super);
-
-    function Op(op, first, second, flip) {
-      if (op === 'in') {
-        return new In(first, second);
-      }
-      if (op === 'do') {
-        return this.generateDo(first);
-      }
-      if (op === 'new') {
-        if (first instanceof Call && !first["do"] && !first.isNew) {
-          return first.newInstance();
-        }
-        if (first instanceof Code && first.bound || first["do"]) {
-          first = new Parens(first);
-        }
-      }
-      this.operator = CONVERSIONS[op] || op;
-      this.first = first;
-      this.second = second;
-      this.flip = !!flip;
-      return this;
-    }
-
-    CONVERSIONS = {
-      '==': '===',
-      '!=': '!==',
-      'of': 'in'
-    };
-
-    INVERSIONS = {
-      '!==': '===',
-      '===': '!=='
-    };
-
-    Op.prototype.children = ['first', 'second'];
-
-    Op.prototype.isSimpleNumber = NO;
-
-    Op.prototype.isUnary = function() {
-      return !this.second;
-    };
-
-    Op.prototype.isComplex = function() {
-      var _ref2;
-      return !(this.isUnary() && ((_ref2 = this.operator) === '+' || _ref2 === '-')) || this.first.isComplex();
-    };
-
-    Op.prototype.isChainable = function() {
-      var _ref2;
-      return (_ref2 = this.operator) === '<' || _ref2 === '>' || _ref2 === '>=' || _ref2 === '<=' || _ref2 === '===' || _ref2 === '!==';
-    };
-
-    Op.prototype.invert = function() {
-      var allInvertable, curr, fst, op, _ref2;
-      if (this.isChainable() && this.first.isChainable()) {
-        allInvertable = true;
-        curr = this;
-        while (curr && curr.operator) {
-          allInvertable && (allInvertable = curr.operator in INVERSIONS);
-          curr = curr.first;
-        }
-        if (!allInvertable) {
-          return new Parens(this).invert();
-        }
-        curr = this;
-        while (curr && curr.operator) {
-          curr.invert = !curr.invert;
-          curr.operator = INVERSIONS[curr.operator];
-          curr = curr.first;
-        }
-        return this;
-      } else if (op = INVERSIONS[this.operator]) {
-        this.operator = op;
-        if (this.first.unwrap() instanceof Op) {
-          this.first.invert();
-        }
-        return this;
-      } else if (this.second) {
-        return new Parens(this).invert();
-      } else if (this.operator === '!' && (fst = this.first.unwrap()) instanceof Op && ((_ref2 = fst.operator) === '!' || _ref2 === 'in' || _ref2 === 'instanceof')) {
-        return fst;
-      } else {
-        return new Op('!', this);
-      }
-    };
-
-    Op.prototype.unfoldSoak = function(o) {
-      var _ref2;
-      return ((_ref2 = this.operator) === '++' || _ref2 === '--' || _ref2 === 'delete') && unfoldSoak(o, this, 'first');
-    };
-
-    Op.prototype.generateDo = function(exp) {
-      var call, func, param, passedParams, ref, _i, _len, _ref2;
-      passedParams = [];
-      func = exp instanceof Assign && (ref = exp.value.unwrap()) instanceof Code ? ref : exp;
-      _ref2 = func.params || [];
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        param = _ref2[_i];
-        if (param.value) {
-          passedParams.push(param.value);
-          delete param.value;
-        } else {
-          passedParams.push(param);
-        }
-      }
-      call = new Call(exp, passedParams);
-      call["do"] = true;
-      return call;
-    };
-
-    Op.prototype.compileNode = function(o) {
-      var answer, isChain, lhs, rhs, _ref2, _ref3;
-      isChain = this.isChainable() && this.first.isChainable();
-      if (!isChain) {
-        this.first.front = this.front;
-      }
-      if (this.operator === 'delete' && o.scope.check(this.first.unwrapAll().value)) {
-        this.error('delete operand may not be argument or var');
-      }
-      if (((_ref2 = this.operator) === '--' || _ref2 === '++') && (_ref3 = this.first.unwrapAll().value, __indexOf.call(STRICT_PROSCRIBED, _ref3) >= 0)) {
-        this.error("cannot increment/decrement \"" + (this.first.unwrapAll().value) + "\"");
-      }
-      if (this.isUnary()) {
-        return this.compileUnary(o);
-      }
-      if (isChain) {
-        return this.compileChain(o);
-      }
-      switch (this.operator) {
-        case '?':
-          return this.compileExistence(o);
-        case '**':
-          return this.compilePower(o);
-        case '//':
-          return this.compileFloorDivision(o);
-        case '%%':
-          return this.compileModulo(o);
-        default:
-          lhs = this.first.compileToFragments(o, LEVEL_OP);
-          rhs = this.second.compileToFragments(o, LEVEL_OP);
-          answer = [].concat(lhs, this.makeCode(" " + this.operator + " "), rhs);
-          if (o.level <= LEVEL_OP) {
-            return answer;
-          } else {
-            return this.wrapInBraces(answer);
-          }
-      }
-    };
-
-    Op.prototype.compileChain = function(o) {
-      var fragments, fst, shared, _ref2;
-      _ref2 = this.first.second.cache(o), this.first.second = _ref2[0], shared = _ref2[1];
-      fst = this.first.compileToFragments(o, LEVEL_OP);
-      fragments = fst.concat(this.makeCode(" " + (this.invert ? '&&' : '||') + " "), shared.compileToFragments(o), this.makeCode(" " + this.operator + " "), this.second.compileToFragments(o, LEVEL_OP));
-      return this.wrapInBraces(fragments);
-    };
-
-    Op.prototype.compileExistence = function(o) {
-      var fst, ref;
-      if (this.first.isComplex()) {
-        ref = new Literal(o.scope.freeVariable('ref'));
-        fst = new Parens(new Assign(ref, this.first));
-      } else {
-        fst = this.first;
-        ref = fst;
-      }
-      return new If(new Existence(fst), ref, {
-        type: 'if'
-      }).addElse(this.second).compileToFragments(o);
-    };
-
-    Op.prototype.compileUnary = function(o) {
-      var op, parts, plusMinus;
-      parts = [];
-      op = this.operator;
-      parts.push([this.makeCode(op)]);
-      if (op === '!' && this.first instanceof Existence) {
-        this.first.negated = !this.first.negated;
-        return this.first.compileToFragments(o);
-      }
-      if (o.level >= LEVEL_ACCESS) {
-        return (new Parens(this)).compileToFragments(o);
-      }
-      plusMinus = op === '+' || op === '-';
-      if ((op === 'new' || op === 'typeof' || op === 'delete') || plusMinus && this.first instanceof Op && this.first.operator === op) {
-        parts.push([this.makeCode(' ')]);
-      }
-      if ((plusMinus && this.first instanceof Op) || (op === 'new' && this.first.isStatement(o))) {
-        this.first = new Parens(this.first);
-      }
-      parts.push(this.first.compileToFragments(o, LEVEL_OP));
-      if (this.flip) {
-        parts.reverse();
-      }
-      return this.joinFragmentArrays(parts, '');
-    };
-
-    Op.prototype.compilePower = function(o) {
-      var pow;
-      pow = new Value(new Literal('Math'), [new Access(new Literal('pow'))]);
-      return new Call(pow, [this.first, this.second]).compileToFragments(o);
-    };
-
-    Op.prototype.compileFloorDivision = function(o) {
-      var div, floor;
-      floor = new Value(new Literal('Math'), [new Access(new Literal('floor'))]);
-      div = new Op('/', this.first, this.second);
-      return new Call(floor, [div]).compileToFragments(o);
-    };
-
-    Op.prototype.compileModulo = function(o) {
-      var mod;
-      mod = new Value(new Literal(utility('modulo')));
-      return new Call(mod, [this.first, this.second]).compileToFragments(o);
-    };
-
-    Op.prototype.toString = function(idt) {
-      return Op.__super__.toString.call(this, idt, this.constructor.name + ' ' + this.operator);
-    };
-
-    return Op;
-
-  })(Base);
-
-  exports.In = In = (function(_super) {
-    __extends(In, _super);
-
-    function In(object, array) {
-      this.object = object;
-      this.array = array;
-    }
-
-    In.prototype.children = ['object', 'array'];
-
-    In.prototype.invert = NEGATE;
-
-    In.prototype.compileNode = function(o) {
-      var hasSplat, obj, _i, _len, _ref2;
-      if (this.array instanceof Value && this.array.isArray() && this.array.base.objects.length) {
-        _ref2 = this.array.base.objects;
-        for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-          obj = _ref2[_i];
-          if (!(obj instanceof Splat)) {
-            continue;
-          }
-          hasSplat = true;
-          break;
-        }
-        if (!hasSplat) {
-          return this.compileOrTest(o);
-        }
-      }
-      return this.compileLoopTest(o);
-    };
-
-    In.prototype.compileOrTest = function(o) {
-      var cmp, cnj, i, item, ref, sub, tests, _i, _len, _ref2, _ref3, _ref4;
-      _ref2 = this.object.cache(o, LEVEL_OP), sub = _ref2[0], ref = _ref2[1];
-      _ref3 = this.negated ? [' !== ', ' && '] : [' === ', ' || '], cmp = _ref3[0], cnj = _ref3[1];
-      tests = [];
-      _ref4 = this.array.base.objects;
-      for (i = _i = 0, _len = _ref4.length; _i < _len; i = ++_i) {
-        item = _ref4[i];
-        if (i) {
-          tests.push(this.makeCode(cnj));
-        }
-        tests = tests.concat((i ? ref : sub), this.makeCode(cmp), item.compileToFragments(o, LEVEL_ACCESS));
-      }
-      if (o.level < LEVEL_OP) {
-        return tests;
-      } else {
-        return this.wrapInBraces(tests);
-      }
-    };
-
-    In.prototype.compileLoopTest = function(o) {
-      var fragments, ref, sub, _ref2;
-      _ref2 = this.object.cache(o, LEVEL_LIST), sub = _ref2[0], ref = _ref2[1];
-      fragments = [].concat(this.makeCode(utility('indexOf') + ".call("), this.array.compileToFragments(o, LEVEL_LIST), this.makeCode(", "), ref, this.makeCode(") " + (this.negated ? '< 0' : '>= 0')));
-      if (fragmentsToText(sub) === fragmentsToText(ref)) {
-        return fragments;
-      }
-      fragments = sub.concat(this.makeCode(', '), fragments);
-      if (o.level < LEVEL_LIST) {
-        return fragments;
-      } else {
-        return this.wrapInBraces(fragments);
-      }
-    };
-
-    In.prototype.toString = function(idt) {
-      return In.__super__.toString.call(this, idt, this.constructor.name + (this.negated ? '!' : ''));
-    };
-
-    return In;
-
-  })(Base);
-
-  exports.Try = Try = (function(_super) {
-    __extends(Try, _super);
-
-    function Try(attempt, errorVariable, recovery, ensure) {
-      this.attempt = attempt;
-      this.errorVariable = errorVariable;
-      this.recovery = recovery;
-      this.ensure = ensure;
-    }
-
-    Try.prototype.children = ['attempt', 'recovery', 'ensure'];
-
-    Try.prototype.isStatement = YES;
-
-    Try.prototype.jumps = function(o) {
-      var _ref2;
-      return this.attempt.jumps(o) || ((_ref2 = this.recovery) != null ? _ref2.jumps(o) : void 0);
-    };
-
-    Try.prototype.makeReturn = function(res) {
-      if (this.attempt) {
-        this.attempt = this.attempt.makeReturn(res);
-      }
-      if (this.recovery) {
-        this.recovery = this.recovery.makeReturn(res);
-      }
-      return this;
-    };
-
-    Try.prototype.compileNode = function(o) {
-      var catchPart, ensurePart, placeholder, tryPart;
-      o.indent += TAB;
-      tryPart = this.attempt.compileToFragments(o, LEVEL_TOP);
-      catchPart = this.recovery ? (placeholder = new Literal('_error'), this.errorVariable ? this.recovery.unshift(new Assign(this.errorVariable, placeholder)) : void 0, [].concat(this.makeCode(" catch ("), placeholder.compileToFragments(o), this.makeCode(") {\n"), this.recovery.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab + "}"))) : !(this.ensure || this.recovery) ? [this.makeCode(' catch (_error) {}')] : [];
-      ensurePart = this.ensure ? [].concat(this.makeCode(" finally {\n"), this.ensure.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab + "}")) : [];
-      return [].concat(this.makeCode("" + this.tab + "try {\n"), tryPart, this.makeCode("\n" + this.tab + "}"), catchPart, ensurePart);
-    };
-
-    return Try;
-
-  })(Base);
-
-  exports.Throw = Throw = (function(_super) {
-    __extends(Throw, _super);
-
-    function Throw(expression) {
-      this.expression = expression;
-    }
-
-    Throw.prototype.children = ['expression'];
-
-    Throw.prototype.isStatement = YES;
-
-    Throw.prototype.jumps = NO;
-
-    Throw.prototype.makeReturn = THIS;
-
-    Throw.prototype.compileNode = function(o) {
-      return [].concat(this.makeCode(this.tab + "throw "), this.expression.compileToFragments(o), this.makeCode(";"));
-    };
-
-    return Throw;
-
-  })(Base);
-
-  exports.Existence = Existence = (function(_super) {
-    __extends(Existence, _super);
-
-    function Existence(expression) {
-      this.expression = expression;
-    }
-
-    Existence.prototype.children = ['expression'];
-
-    Existence.prototype.invert = NEGATE;
-
-    Existence.prototype.compileNode = function(o) {
-      var cmp, cnj, code, _ref2;
-      this.expression.front = this.front;
-      code = this.expression.compile(o, LEVEL_OP);
-      if (IDENTIFIER.test(code) && !o.scope.check(code)) {
-        _ref2 = this.negated ? ['===', '||'] : ['!==', '&&'], cmp = _ref2[0], cnj = _ref2[1];
-        code = "typeof " + code + " " + cmp + " \"undefined\" " + cnj + " " + code + " " + cmp + " null";
-      } else {
-        code = "" + code + " " + (this.negated ? '==' : '!=') + " null";
-      }
-      return [this.makeCode(o.level <= LEVEL_COND ? code : "(" + code + ")")];
-    };
-
-    return Existence;
-
-  })(Base);
-
-  exports.Parens = Parens = (function(_super) {
-    __extends(Parens, _super);
-
-    function Parens(body) {
-      this.body = body;
-    }
-
-    Parens.prototype.children = ['body'];
-
-    Parens.prototype.unwrap = function() {
-      return this.body;
-    };
-
-    Parens.prototype.isComplex = function() {
-      return this.body.isComplex();
-    };
-
-    Parens.prototype.compileNode = function(o) {
-      var bare, expr, fragments;
-      expr = this.body.unwrap();
-      if (expr instanceof Value && expr.isAtomic()) {
-        expr.front = this.front;
-        return expr.compileToFragments(o);
-      }
-      fragments = expr.compileToFragments(o, LEVEL_PAREN);
-      bare = o.level < LEVEL_OP && (expr instanceof Op || expr instanceof Call || (expr instanceof For && expr.returns));
-      if (bare) {
-        return fragments;
-      } else {
-        return this.wrapInBraces(fragments);
-      }
-    };
-
-    return Parens;
-
-  })(Base);
-
-  exports.For = For = (function(_super) {
-    __extends(For, _super);
-
-    function For(body, source) {
-      var _ref2;
-      this.source = source.source, this.guard = source.guard, this.step = source.step, this.name = source.name, this.index = source.index;
-      this.body = Block.wrap([body]);
-      this.own = !!source.own;
-      this.object = !!source.object;
-      if (this.object) {
-        _ref2 = [this.index, this.name], this.name = _ref2[0], this.index = _ref2[1];
-      }
-      if (this.index instanceof Value) {
-        this.index.error('index cannot be a pattern matching expression');
-      }
-      this.range = this.source instanceof Value && this.source.base instanceof Range && !this.source.properties.length;
-      this.pattern = this.name instanceof Value;
-      if (this.range && this.index) {
-        this.index.error('indexes do not apply to range loops');
-      }
-      if (this.range && this.pattern) {
-        this.name.error('cannot pattern match over range loops');
-      }
-      if (this.own && !this.object) {
-        this.name.error('cannot use own with for-in');
-      }
-      this.returns = false;
-    }
-
-    For.prototype.children = ['body', 'source', 'guard', 'step'];
-
-    For.prototype.compileNode = function(o) {
-      var body, bodyFragments, compare, compareDown, declare, declareDown, defPart, defPartFragments, down, forPartFragments, guardPart, idt1, increment, index, ivar, kvar, kvarAssign, lastJumps, lvar, name, namePart, ref, resultPart, returnResult, rvar, scope, source, step, stepNum, stepVar, svar, varPart, _ref2, _ref3;
-      body = Block.wrap([this.body]);
-      lastJumps = (_ref2 = last(body.expressions)) != null ? _ref2.jumps() : void 0;
-      if (lastJumps && lastJumps instanceof Return) {
-        this.returns = false;
-      }
-      source = this.range ? this.source.base : this.source;
-      scope = o.scope;
-      if (!this.pattern) {
-        name = this.name && (this.name.compile(o, LEVEL_LIST));
-      }
-      index = this.index && (this.index.compile(o, LEVEL_LIST));
-      if (name && !this.pattern) {
-        scope.find(name);
-      }
-      if (index) {
-        scope.find(index);
-      }
-      if (this.returns) {
-        rvar = scope.freeVariable('results');
-      }
-      ivar = (this.object && index) || scope.freeVariable('i');
-      kvar = (this.range && name) || index || ivar;
-      kvarAssign = kvar !== ivar ? "" + kvar + " = " : "";
-      if (this.step && !this.range) {
-        _ref3 = this.cacheToCodeFragments(this.step.cache(o, LEVEL_LIST)), step = _ref3[0], stepVar = _ref3[1];
-        stepNum = stepVar.match(NUMBER);
-      }
-      if (this.pattern) {
-        name = ivar;
-      }
-      varPart = '';
-      guardPart = '';
-      defPart = '';
-      idt1 = this.tab + TAB;
-      if (this.range) {
-        forPartFragments = source.compileToFragments(merge(o, {
-          index: ivar,
-          name: name,
-          step: this.step
-        }));
-      } else {
-        svar = this.source.compile(o, LEVEL_LIST);
-        if ((name || this.own) && !IDENTIFIER.test(svar)) {
-          defPart += "" + this.tab + (ref = scope.freeVariable('ref')) + " = " + svar + ";\n";
-          svar = ref;
-        }
-        if (name && !this.pattern) {
-          namePart = "" + name + " = " + svar + "[" + kvar + "]";
-        }
-        if (!this.object) {
-          if (step !== stepVar) {
-            defPart += "" + this.tab + step + ";\n";
-          }
-          if (!(this.step && stepNum && (down = parseNum(stepNum[0]) < 0))) {
-            lvar = scope.freeVariable('len');
-          }
-          declare = "" + kvarAssign + ivar + " = 0, " + lvar + " = " + svar + ".length";
-          declareDown = "" + kvarAssign + ivar + " = " + svar + ".length - 1";
-          compare = "" + ivar + " < " + lvar;
-          compareDown = "" + ivar + " >= 0";
-          if (this.step) {
-            if (stepNum) {
-              if (down) {
-                compare = compareDown;
-                declare = declareDown;
-              }
-            } else {
-              compare = "" + stepVar + " > 0 ? " + compare + " : " + compareDown;
-              declare = "(" + stepVar + " > 0 ? (" + declare + ") : " + declareDown + ")";
-            }
-            increment = "" + ivar + " += " + stepVar;
-          } else {
-            increment = "" + (kvar !== ivar ? "++" + ivar : "" + ivar + "++");
-          }
-          forPartFragments = [this.makeCode("" + declare + "; " + compare + "; " + kvarAssign + increment)];
-        }
-      }
-      if (this.returns) {
-        resultPart = "" + this.tab + rvar + " = [];\n";
-        returnResult = "\n" + this.tab + "return " + rvar + ";";
-        body.makeReturn(rvar);
-      }
-      if (this.guard) {
-        if (body.expressions.length > 1) {
-          body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue")));
-        } else {
-          if (this.guard) {
-            body = Block.wrap([new If(this.guard, body)]);
-          }
-        }
-      }
-      if (this.pattern) {
-        body.expressions.unshift(new Assign(this.name, new Literal("" + svar + "[" + kvar + "]")));
-      }
-      defPartFragments = [].concat(this.makeCode(defPart), this.pluckDirectCall(o, body));
-      if (namePart) {
-        varPart = "\n" + idt1 + namePart + ";";
-      }
-      if (this.object) {
-        forPartFragments = [this.makeCode("" + kvar + " in " + svar)];
-        if (this.own) {
-          guardPart = "\n" + idt1 + "if (!" + (utility('hasProp')) + ".call(" + svar + ", " + kvar + ")) continue;";
-        }
-      }
-      bodyFragments = body.compileToFragments(merge(o, {
-        indent: idt1
-      }), LEVEL_TOP);
-      if (bodyFragments && (bodyFragments.length > 0)) {
-        bodyFragments = [].concat(this.makeCode("\n"), bodyFragments, this.makeCode("\n"));
-      }
-      return [].concat(defPartFragments, this.makeCode("" + (resultPart || '') + this.tab + "for ("), forPartFragments, this.makeCode(") {" + guardPart + varPart), bodyFragments, this.makeCode("" + this.tab + "}" + (returnResult || '')));
-    };
-
-    For.prototype.pluckDirectCall = function(o, body) {
-      var base, defs, expr, fn, idx, ref, val, _i, _len, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8;
-      defs = [];
-      _ref2 = body.expressions;
-      for (idx = _i = 0, _len = _ref2.length; _i < _len; idx = ++_i) {
-        expr = _ref2[idx];
-        expr = expr.unwrapAll();
-        if (!(expr instanceof Call)) {
-          continue;
-        }
-        val = (_ref3 = expr.variable) != null ? _ref3.unwrapAll() : void 0;
-        if (!((val instanceof Code) || (val instanceof Value && ((_ref4 = val.base) != null ? _ref4.unwrapAll() : void 0) instanceof Code && val.properties.length === 1 && ((_ref5 = (_ref6 = val.properties[0].name) != null ? _ref6.value : void 0) === 'call' || _ref5 === 'apply')))) {
-          continue;
-        }
-        fn = ((_ref7 = val.base) != null ? _ref7.unwrapAll() : void 0) || val;
-        ref = new Literal(o.scope.freeVariable('fn'));
-        base = new Value(ref);
-        if (val.base) {
-          _ref8 = [base, val], val.base = _ref8[0], base = _ref8[1];
-        }
-        body.expressions[idx] = new Call(base, expr.args);
-        defs = defs.concat(this.makeCode(this.tab), new Assign(ref, fn).compileToFragments(o, LEVEL_TOP), this.makeCode(';\n'));
-      }
-      return defs;
-    };
-
-    return For;
-
-  })(While);
-
-  exports.Switch = Switch = (function(_super) {
-    __extends(Switch, _super);
-
-    function Switch(subject, cases, otherwise) {
-      this.subject = subject;
-      this.cases = cases;
-      this.otherwise = otherwise;
-    }
-
-    Switch.prototype.children = ['subject', 'cases', 'otherwise'];
-
-    Switch.prototype.isStatement = YES;
-
-    Switch.prototype.jumps = function(o) {
-      var block, conds, jumpNode, _i, _len, _ref2, _ref3, _ref4;
-      if (o == null) {
-        o = {
-          block: true
-        };
-      }
-      _ref2 = this.cases;
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        _ref3 = _ref2[_i], conds = _ref3[0], block = _ref3[1];
-        if (jumpNode = block.jumps(o)) {
-          return jumpNode;
-        }
-      }
-      return (_ref4 = this.otherwise) != null ? _ref4.jumps(o) : void 0;
-    };
-
-    Switch.prototype.makeReturn = function(res) {
-      var pair, _i, _len, _ref2, _ref3;
-      _ref2 = this.cases;
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        pair = _ref2[_i];
-        pair[1].makeReturn(res);
-      }
-      if (res) {
-        this.otherwise || (this.otherwise = new Block([new Literal('void 0')]));
-      }
-      if ((_ref3 = this.otherwise) != null) {
-        _ref3.makeReturn(res);
-      }
-      return this;
-    };
-
-    Switch.prototype.compileNode = function(o) {
-      var block, body, cond, conditions, expr, fragments, i, idt1, idt2, _i, _j, _len, _len1, _ref2, _ref3, _ref4;
-      idt1 = o.indent + TAB;
-      idt2 = o.indent = idt1 + TAB;
-      fragments = [].concat(this.makeCode(this.tab + "switch ("), (this.subject ? this.subject.compileToFragments(o, LEVEL_PAREN) : this.makeCode("false")), this.makeCode(") {\n"));
-      _ref2 = this.cases;
-      for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) {
-        _ref3 = _ref2[i], conditions = _ref3[0], block = _ref3[1];
-        _ref4 = flatten([conditions]);
-        for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) {
-          cond = _ref4[_j];
-          if (!this.subject) {
-            cond = cond.invert();
-          }
-          fragments = fragments.concat(this.makeCode(idt1 + "case "), cond.compileToFragments(o, LEVEL_PAREN), this.makeCode(":\n"));
-        }
-        if ((body = block.compileToFragments(o, LEVEL_TOP)).length > 0) {
-          fragments = fragments.concat(body, this.makeCode('\n'));
-        }
-        if (i === this.cases.length - 1 && !this.otherwise) {
-          break;
-        }
-        expr = this.lastNonComment(block.expressions);
-        if (expr instanceof Return || (expr instanceof Literal && expr.jumps() && expr.value !== 'debugger')) {
-          continue;
-        }
-        fragments.push(cond.makeCode(idt2 + 'break;\n'));
-      }
-      if (this.otherwise && this.otherwise.expressions.length) {
-        fragments.push.apply(fragments, [this.makeCode(idt1 + "default:\n")].concat(__slice.call(this.otherwise.compileToFragments(o, LEVEL_TOP)), [this.makeCode("\n")]));
-      }
-      fragments.push(this.makeCode(this.tab + '}'));
-      return fragments;
-    };
-
-    return Switch;
-
-  })(Base);
-
-  exports.If = If = (function(_super) {
-    __extends(If, _super);
-
-    function If(condition, body, options) {
-      this.body = body;
-      if (options == null) {
-        options = {};
-      }
-      this.condition = options.type === 'unless' ? condition.invert() : condition;
-      this.elseBody = null;
-      this.isChain = false;
-      this.soak = options.soak;
-    }
-
-    If.prototype.children = ['condition', 'body', 'elseBody'];
-
-    If.prototype.bodyNode = function() {
-      var _ref2;
-      return (_ref2 = this.body) != null ? _ref2.unwrap() : void 0;
-    };
-
-    If.prototype.elseBodyNode = function() {
-      var _ref2;
-      return (_ref2 = this.elseBody) != null ? _ref2.unwrap() : void 0;
-    };
-
-    If.prototype.addElse = function(elseBody) {
-      if (this.isChain) {
-        this.elseBodyNode().addElse(elseBody);
-      } else {
-        this.isChain = elseBody instanceof If;
-        this.elseBody = this.ensureBlock(elseBody);
-        this.elseBody.updateLocationDataIfMissing(elseBody.locationData);
-      }
-      return this;
-    };
-
-    If.prototype.isStatement = function(o) {
-      var _ref2;
-      return (o != null ? o.level : void 0) === LEVEL_TOP || this.bodyNode().isStatement(o) || ((_ref2 = this.elseBodyNode()) != null ? _ref2.isStatement(o) : void 0);
-    };
-
-    If.prototype.jumps = function(o) {
-      var _ref2;
-      return this.body.jumps(o) || ((_ref2 = this.elseBody) != null ? _ref2.jumps(o) : void 0);
-    };
-
-    If.prototype.compileNode = function(o) {
-      if (this.isStatement(o)) {
-        return this.compileStatement(o);
-      } else {
-        return this.compileExpression(o);
-      }
-    };
-
-    If.prototype.makeReturn = function(res) {
-      if (res) {
-        this.elseBody || (this.elseBody = new Block([new Literal('void 0')]));
-      }
-      this.body && (this.body = new Block([this.body.makeReturn(res)]));
-      this.elseBody && (this.elseBody = new Block([this.elseBody.makeReturn(res)]));
-      return this;
-    };
-
-    If.prototype.ensureBlock = function(node) {
-      if (node instanceof Block) {
-        return node;
-      } else {
-        return new Block([node]);
-      }
-    };
-
-    If.prototype.compileStatement = function(o) {
-      var answer, body, child, cond, exeq, ifPart, indent;
-      child = del(o, 'chainChild');
-      exeq = del(o, 'isExistentialEquals');
-      if (exeq) {
-        return new If(this.condition.invert(), this.elseBodyNode(), {
-          type: 'if'
-        }).compileToFragments(o);
-      }
-      indent = o.indent + TAB;
-      cond = this.condition.compileToFragments(o, LEVEL_PAREN);
-      body = this.ensureBlock(this.body).compileToFragments(merge(o, {
-        indent: indent
-      }));
-      ifPart = [].concat(this.makeCode("if ("), cond, this.makeCode(") {\n"), body, this.makeCode("\n" + this.tab + "}"));
-      if (!child) {
-        ifPart.unshift(this.makeCode(this.tab));
-      }
-      if (!this.elseBody) {
-        return ifPart;
-      }
-      answer = ifPart.concat(this.makeCode(' else '));
-      if (this.isChain) {
-        o.chainChild = true;
-        answer = answer.concat(this.elseBody.unwrap().compileToFragments(o, LEVEL_TOP));
-      } else {
-        answer = answer.concat(this.makeCode("{\n"), this.elseBody.compileToFragments(merge(o, {
-          indent: indent
-        }), LEVEL_TOP), this.makeCode("\n" + this.tab + "}"));
-      }
-      return answer;
-    };
-
-    If.prototype.compileExpression = function(o) {
-      var alt, body, cond, fragments;
-      cond = this.condition.compileToFragments(o, LEVEL_COND);
-      body = this.bodyNode().compileToFragments(o, LEVEL_LIST);
-      alt = this.elseBodyNode() ? this.elseBodyNode().compileToFragments(o, LEVEL_LIST) : [this.makeCode('void 0')];
-      fragments = cond.concat(this.makeCode(" ? "), body, this.makeCode(" : "), alt);
-      if (o.level >= LEVEL_COND) {
-        return this.wrapInBraces(fragments);
-      } else {
-        return fragments;
-      }
-    };
-
-    If.prototype.unfoldSoak = function() {
-      return this.soak && this;
-    };
-
-    return If;
-
-  })(Base);
-
-  UTILITIES = {
-    "extends": function() {
-      return "function(child, parent) { for (var key in parent) { if (" + (utility('hasProp')) + ".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }";
-    },
-    bind: function() {
-      return 'function(fn, me){ return function(){ return fn.apply(me, arguments); }; }';
-    },
-    indexOf: function() {
-      return "[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }";
-    },
-    modulo: function() {
-      return "function(a, b) { return (+a % (b = +b) + b) % b; }";
-    },
-    hasProp: function() {
-      return '{}.hasOwnProperty';
-    },
-    slice: function() {
-      return '[].slice';
-    }
-  };
-
-  LEVEL_TOP = 1;
-
-  LEVEL_PAREN = 2;
-
-  LEVEL_LIST = 3;
-
-  LEVEL_COND = 4;
-
-  LEVEL_OP = 5;
-
-  LEVEL_ACCESS = 6;
-
-  TAB = '  ';
-
-  IDENTIFIER_STR = "[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*";
-
-  IDENTIFIER = RegExp("^" + IDENTIFIER_STR + "$");
-
-  SIMPLENUM = /^[+-]?\d+$/;
-
-  HEXNUM = /^[+-]?0x[\da-f]+/i;
-
-  NUMBER = /^[+-]?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)$/i;
-
-  METHOD_DEF = RegExp("^(" + IDENTIFIER_STR + ")(\\.prototype)?(?:\\.(" + IDENTIFIER_STR + ")|\\[(\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*')\\]|\\[(0x[\\da-fA-F]+|\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\])$");
-
-  IS_STRING = /^['"]/;
-
-  IS_REGEX = /^\//;
-
-  utility = function(name) {
-    var ref;
-    ref = "__" + name;
-    Scope.root.assign(ref, UTILITIES[name]());
-    return ref;
-  };
-
-  multident = function(code, tab) {
-    code = code.replace(/\n/g, '$&' + tab);
-    return code.replace(/\s+$/, '');
-  };
-
-  parseNum = function(x) {
-    if (x == null) {
-      return 0;
-    } else if (x.match(HEXNUM)) {
-      return parseInt(x, 16);
-    } else {
-      return parseFloat(x);
-    }
-  };
-
-  isLiteralArguments = function(node) {
-    return node instanceof Literal && node.value === 'arguments' && !node.asKey;
-  };
-
-  isLiteralThis = function(node) {
-    return (node instanceof Literal && node.value === 'this' && !node.asKey) || (node instanceof Code && node.bound) || (node instanceof Call && node.isSuper);
-  };
-
-  unfoldSoak = function(o, parent, name) {
-    var ifn;
-    if (!(ifn = parent[name].unfoldSoak(o))) {
-      return;
-    }
-    parent[name] = ifn.body;
-    ifn.body = new Value(parent);
-    return ifn;
-  };
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/optparse.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/optparse.js
deleted file mode 100644 (file)
index 6ec3604..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(function() {
-  var LONG_FLAG, MULTI_FLAG, OPTIONAL, OptionParser, SHORT_FLAG, buildRule, buildRules, normalizeArguments, repeat;
-
-  repeat = require('./helpers').repeat;
-
-  exports.OptionParser = OptionParser = (function() {
-    function OptionParser(rules, banner) {
-      this.banner = banner;
-      this.rules = buildRules(rules);
-    }
-
-    OptionParser.prototype.parse = function(args) {
-      var arg, i, isOption, matchedRule, options, originalArgs, pos, rule, seenNonOptionArg, skippingArgument, value, _i, _j, _len, _len1, _ref;
-      options = {
-        "arguments": []
-      };
-      skippingArgument = false;
-      originalArgs = args;
-      args = normalizeArguments(args);
-      for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) {
-        arg = args[i];
-        if (skippingArgument) {
-          skippingArgument = false;
-          continue;
-        }
-        if (arg === '--') {
-          pos = originalArgs.indexOf('--');
-          options["arguments"] = options["arguments"].concat(originalArgs.slice(pos + 1));
-          break;
-        }
-        isOption = !!(arg.match(LONG_FLAG) || arg.match(SHORT_FLAG));
-        seenNonOptionArg = options["arguments"].length > 0;
-        if (!seenNonOptionArg) {
-          matchedRule = false;
-          _ref = this.rules;
-          for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
-            rule = _ref[_j];
-            if (rule.shortFlag === arg || rule.longFlag === arg) {
-              value = true;
-              if (rule.hasArgument) {
-                skippingArgument = true;
-                value = args[i + 1];
-              }
-              options[rule.name] = rule.isList ? (options[rule.name] || []).concat(value) : value;
-              matchedRule = true;
-              break;
-            }
-          }
-          if (isOption && !matchedRule) {
-            throw new Error("unrecognized option: " + arg);
-          }
-        }
-        if (seenNonOptionArg || !isOption) {
-          options["arguments"].push(arg);
-        }
-      }
-      return options;
-    };
-
-    OptionParser.prototype.help = function() {
-      var letPart, lines, rule, spaces, _i, _len, _ref;
-      lines = [];
-      if (this.banner) {
-        lines.unshift("" + this.banner + "\n");
-      }
-      _ref = this.rules;
-      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-        rule = _ref[_i];
-        spaces = 15 - rule.longFlag.length;
-        spaces = spaces > 0 ? repeat(' ', spaces) : '';
-        letPart = rule.shortFlag ? rule.shortFlag + ', ' : '    ';
-        lines.push('  ' + letPart + rule.longFlag + spaces + rule.description);
-      }
-      return "\n" + (lines.join('\n')) + "\n";
-    };
-
-    return OptionParser;
-
-  })();
-
-  LONG_FLAG = /^(--\w[\w\-]*)/;
-
-  SHORT_FLAG = /^(-\w)$/;
-
-  MULTI_FLAG = /^-(\w{2,})/;
-
-  OPTIONAL = /\[(\w+(\*?))\]/;
-
-  buildRules = function(rules) {
-    var tuple, _i, _len, _results;
-    _results = [];
-    for (_i = 0, _len = rules.length; _i < _len; _i++) {
-      tuple = rules[_i];
-      if (tuple.length < 3) {
-        tuple.unshift(null);
-      }
-      _results.push(buildRule.apply(null, tuple));
-    }
-    return _results;
-  };
-
-  buildRule = function(shortFlag, longFlag, description, options) {
-    var match;
-    if (options == null) {
-      options = {};
-    }
-    match = longFlag.match(OPTIONAL);
-    longFlag = longFlag.match(LONG_FLAG)[1];
-    return {
-      name: longFlag.substr(2),
-      shortFlag: shortFlag,
-      longFlag: longFlag,
-      description: description,
-      hasArgument: !!(match && match[1]),
-      isList: !!(match && match[2])
-    };
-  };
-
-  normalizeArguments = function(args) {
-    var arg, l, match, result, _i, _j, _len, _len1, _ref;
-    args = args.slice(0);
-    result = [];
-    for (_i = 0, _len = args.length; _i < _len; _i++) {
-      arg = args[_i];
-      if (match = arg.match(MULTI_FLAG)) {
-        _ref = match[1].split('');
-        for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
-          l = _ref[_j];
-          result.push('-' + l);
-        }
-      } else {
-        result.push(arg);
-      }
-    }
-    return result;
-  };
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/parser.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/parser.js
deleted file mode 100755 (executable)
index 724636b..0000000
+++ /dev/null
@@ -1,724 +0,0 @@
-/* parser generated by jison 0.4.13 */
-/*
-  Returns a Parser object of the following structure:
-
-  Parser: {
-    yy: {}
-  }
-
-  Parser.prototype: {
-    yy: {},
-    trace: function(),
-    symbols_: {associative list: name ==> number},
-    terminals_: {associative list: number ==> name},
-    productions_: [...],
-    performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
-    table: [...],
-    defaultActions: {...},
-    parseError: function(str, hash),
-    parse: function(input),
-
-    lexer: {
-        EOF: 1,
-        parseError: function(str, hash),
-        setInput: function(input),
-        input: function(),
-        unput: function(str),
-        more: function(),
-        less: function(n),
-        pastInput: function(),
-        upcomingInput: function(),
-        showPosition: function(),
-        test_match: function(regex_match_array, rule_index),
-        next: function(),
-        lex: function(),
-        begin: function(condition),
-        popState: function(),
-        _currentRules: function(),
-        topState: function(),
-        pushState: function(condition),
-
-        options: {
-            ranges: boolean           (optional: true ==> token location info will include a .range[] member)
-            flex: boolean             (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
-            backtrack_lexer: boolean  (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
-        },
-
-        performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
-        rules: [...],
-        conditions: {associative list: name ==> set},
-    }
-  }
-
-
-  token location info (@$, _$, etc.): {
-    first_line: n,
-    last_line: n,
-    first_column: n,
-    last_column: n,
-    range: [start_number, end_number]       (where the numbers are indexes into the input string, regular zero-based)
-  }
-
-
-  the parseError function receives a 'hash' object with these members for lexer and parser errors: {
-    text:        (matched text)
-    token:       (the produced terminal token, if any)
-    line:        (yylineno)
-  }
-  while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
-    loc:         (yylloc)
-    expected:    (string describing the set of expected tokens)
-    recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
-  }
-*/
-var parser = (function(){
-var parser = {trace: function trace() { },
-yy: {},
-symbols_: {"error":2,"Root":3,"Body":4,"Line":5,"TERMINATOR":6,"Expression":7,"Statement":8,"Return":9,"Comment":10,"STATEMENT":11,"Value":12,"Invocation":13,"Code":14,"Operation":15,"Assign":16,"If":17,"Try":18,"While":19,"For":20,"Switch":21,"Class":22,"Throw":23,"Block":24,"INDENT":25,"OUTDENT":26,"Identifier":27,"IDENTIFIER":28,"AlphaNumeric":29,"NUMBER":30,"STRING":31,"Literal":32,"JS":33,"REGEX":34,"DEBUGGER":35,"UNDEFINED":36,"NULL":37,"BOOL":38,"Assignable":39,"=":40,"AssignObj":41,"ObjAssignable":42,":":43,"ThisProperty":44,"RETURN":45,"HERECOMMENT":46,"PARAM_START":47,"ParamList":48,"PARAM_END":49,"FuncGlyph":50,"->":51,"=>":52,"OptComma":53,",":54,"Param":55,"ParamVar":56,"...":57,"Array":58,"Object":59,"Splat":60,"SimpleAssignable":61,"Accessor":62,"Parenthetical":63,"Range":64,"This":65,".":66,"?.":67,"::":68,"?::":69,"Index":70,"INDEX_START":71,"IndexValue":72,"INDEX_END":73,"INDEX_SOAK":74,"Slice":75,"{":76,"AssignList":77,"}":78,"CLASS":79,"EXTENDS":80,"OptFuncExist":81,"Arguments":82,"SUPER":83,"FUNC_EXIST":84,"CALL_START":85,"CALL_END":86,"ArgList":87,"THIS":88,"@":89,"[":90,"]":91,"RangeDots":92,"..":93,"Arg":94,"SimpleArgs":95,"TRY":96,"Catch":97,"FINALLY":98,"CATCH":99,"THROW":100,"(":101,")":102,"WhileSource":103,"WHILE":104,"WHEN":105,"UNTIL":106,"Loop":107,"LOOP":108,"ForBody":109,"FOR":110,"ForStart":111,"ForSource":112,"ForVariables":113,"OWN":114,"ForValue":115,"FORIN":116,"FOROF":117,"BY":118,"SWITCH":119,"Whens":120,"ELSE":121,"When":122,"LEADING_WHEN":123,"IfBlock":124,"IF":125,"POST_IF":126,"UNARY":127,"UNARY_MATH":128,"-":129,"+":130,"--":131,"++":132,"?":133,"MATH":134,"**":135,"SHIFT":136,"COMPARE":137,"LOGIC":138,"RELATION":139,"COMPOUND_ASSIGN":140,"$accept":0,"$end":1},
-terminals_: {2:"error",6:"TERMINATOR",11:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"DEBUGGER",36:"UNDEFINED",37:"NULL",38:"BOOL",40:"=",43:":",45:"RETURN",46:"HERECOMMENT",47:"PARAM_START",49:"PARAM_END",51:"->",52:"=>",54:",",57:"...",66:".",67:"?.",68:"::",69:"?::",71:"INDEX_START",73:"INDEX_END",74:"INDEX_SOAK",76:"{",78:"}",79:"CLASS",80:"EXTENDS",83:"SUPER",84:"FUNC_EXIST",85:"CALL_START",86:"CALL_END",88:"THIS",89:"@",90:"[",91:"]",93:"..",96:"TRY",98:"FINALLY",99:"CATCH",100:"THROW",101:"(",102:")",104:"WHILE",105:"WHEN",106:"UNTIL",108:"LOOP",110:"FOR",114:"OWN",116:"FORIN",117:"FOROF",118:"BY",119:"SWITCH",121:"ELSE",123:"LEADING_WHEN",125:"IF",126:"POST_IF",127:"UNARY",128:"UNARY_MATH",129:"-",130:"+",131:"--",132:"++",133:"?",134:"MATH",135:"**",136:"SHIFT",137:"COMPARE",138:"LOGIC",139:"RELATION",140:"COMPOUND_ASSIGN"},
-productions_: [0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[24,2],[24,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[16,3],[16,4],[16,5],[41,1],[41,3],[41,5],[41,1],[42,1],[42,1],[42,1],[9,2],[9,1],[10,1],[14,5],[14,2],[50,1],[50,1],[53,0],[53,1],[48,0],[48,1],[48,3],[48,4],[48,6],[55,1],[55,2],[55,3],[55,1],[56,1],[56,1],[56,1],[56,1],[60,2],[61,1],[61,2],[61,2],[61,1],[39,1],[39,1],[39,1],[12,1],[12,1],[12,1],[12,1],[12,1],[62,2],[62,2],[62,2],[62,2],[62,1],[62,1],[70,3],[70,2],[72,1],[72,1],[59,4],[77,0],[77,1],[77,3],[77,4],[77,6],[22,1],[22,2],[22,3],[22,4],[22,2],[22,3],[22,4],[22,5],[13,3],[13,3],[13,1],[13,2],[81,0],[81,1],[82,2],[82,4],[65,1],[65,1],[44,2],[58,2],[58,4],[92,1],[92,1],[64,5],[75,3],[75,2],[75,2],[75,1],[87,1],[87,3],[87,4],[87,4],[87,6],[94,1],[94,1],[94,1],[95,1],[95,3],[18,2],[18,3],[18,4],[18,5],[97,3],[97,3],[97,2],[23,2],[63,3],[63,5],[103,2],[103,4],[103,2],[103,4],[19,2],[19,2],[19,2],[19,1],[107,2],[107,2],[20,2],[20,2],[20,2],[109,2],[109,2],[111,2],[111,3],[115,1],[115,1],[115,1],[115,1],[113,1],[113,3],[112,2],[112,2],[112,4],[112,4],[112,4],[112,6],[112,6],[21,5],[21,7],[21,4],[21,6],[120,1],[120,2],[122,3],[122,4],[124,3],[124,5],[17,1],[17,3],[17,3],[17,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,5],[15,4],[15,3]],
-performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
-/* this == yyval */
-
-var $0 = $$.length - 1;
-switch (yystate) {
-case 1:return this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Block);
-break;
-case 2:return this.$ = $$[$0];
-break;
-case 3:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(yy.Block.wrap([$$[$0]]));
-break;
-case 4:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].push($$[$0]));
-break;
-case 5:this.$ = $$[$0-1];
-break;
-case 6:this.$ = $$[$0];
-break;
-case 7:this.$ = $$[$0];
-break;
-case 8:this.$ = $$[$0];
-break;
-case 9:this.$ = $$[$0];
-break;
-case 10:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 11:this.$ = $$[$0];
-break;
-case 12:this.$ = $$[$0];
-break;
-case 13:this.$ = $$[$0];
-break;
-case 14:this.$ = $$[$0];
-break;
-case 15:this.$ = $$[$0];
-break;
-case 16:this.$ = $$[$0];
-break;
-case 17:this.$ = $$[$0];
-break;
-case 18:this.$ = $$[$0];
-break;
-case 19:this.$ = $$[$0];
-break;
-case 20:this.$ = $$[$0];
-break;
-case 21:this.$ = $$[$0];
-break;
-case 22:this.$ = $$[$0];
-break;
-case 23:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Block);
-break;
-case 24:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-1]);
-break;
-case 25:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 26:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 27:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 28:this.$ = $$[$0];
-break;
-case 29:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 30:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 31:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 32:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Undefined);
-break;
-case 33:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Null);
-break;
-case 34:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Bool($$[$0]));
-break;
-case 35:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0]));
-break;
-case 36:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0]));
-break;
-case 37:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1]));
-break;
-case 38:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 39:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-2])(new yy.Value($$[$0-2])), $$[$0], 'object'));
-break;
-case 40:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-4])(new yy.Value($$[$0-4])), $$[$0-1], 'object'));
-break;
-case 41:this.$ = $$[$0];
-break;
-case 42:this.$ = $$[$0];
-break;
-case 43:this.$ = $$[$0];
-break;
-case 44:this.$ = $$[$0];
-break;
-case 45:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Return($$[$0]));
-break;
-case 46:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Return);
-break;
-case 47:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Comment($$[$0]));
-break;
-case 48:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Code($$[$0-3], $$[$0], $$[$0-1]));
-break;
-case 49:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Code([], $$[$0], $$[$0-1]));
-break;
-case 50:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('func');
-break;
-case 51:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('boundfunc');
-break;
-case 52:this.$ = $$[$0];
-break;
-case 53:this.$ = $$[$0];
-break;
-case 54:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([]);
-break;
-case 55:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]);
-break;
-case 56:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0]));
-break;
-case 57:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0]));
-break;
-case 58:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2]));
-break;
-case 59:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Param($$[$0]));
-break;
-case 60:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Param($$[$0-1], null, true));
-break;
-case 61:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Param($$[$0-2], $$[$0]));
-break;
-case 62:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Expansion);
-break;
-case 63:this.$ = $$[$0];
-break;
-case 64:this.$ = $$[$0];
-break;
-case 65:this.$ = $$[$0];
-break;
-case 66:this.$ = $$[$0];
-break;
-case 67:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Splat($$[$0-1]));
-break;
-case 68:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 69:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].add($$[$0]));
-break;
-case 70:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value($$[$0-1], [].concat($$[$0])));
-break;
-case 71:this.$ = $$[$0];
-break;
-case 72:this.$ = $$[$0];
-break;
-case 73:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 74:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 75:this.$ = $$[$0];
-break;
-case 76:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 77:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 78:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 79:this.$ = $$[$0];
-break;
-case 80:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0]));
-break;
-case 81:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0], 'soak'));
-break;
-case 82:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.Literal('prototype'))), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]);
-break;
-case 83:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.Literal('prototype'), 'soak')), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]);
-break;
-case 84:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Access(new yy.Literal('prototype')));
-break;
-case 85:this.$ = $$[$0];
-break;
-case 86:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-1]);
-break;
-case 87:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(yy.extend($$[$0], {
-          soak: true
-        }));
-break;
-case 88:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Index($$[$0]));
-break;
-case 89:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Slice($$[$0]));
-break;
-case 90:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Obj($$[$0-2], $$[$0-3].generated));
-break;
-case 91:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([]);
-break;
-case 92:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]);
-break;
-case 93:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0]));
-break;
-case 94:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0]));
-break;
-case 95:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2]));
-break;
-case 96:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Class);
-break;
-case 97:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class(null, null, $$[$0]));
-break;
-case 98:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class(null, $$[$0]));
-break;
-case 99:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class(null, $$[$0-1], $$[$0]));
-break;
-case 100:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class($$[$0]));
-break;
-case 101:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class($$[$0-1], null, $$[$0]));
-break;
-case 102:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class($$[$0-2], $$[$0]));
-break;
-case 103:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Class($$[$0-3], $$[$0-1], $$[$0]));
-break;
-case 104:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Call($$[$0-2], $$[$0], $$[$0-1]));
-break;
-case 105:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Call($$[$0-2], $$[$0], $$[$0-1]));
-break;
-case 106:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Call('super', [new yy.Splat(new yy.Literal('arguments'))]));
-break;
-case 107:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Call('super', $$[$0]));
-break;
-case 108:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(false);
-break;
-case 109:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(true);
-break;
-case 110:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([]);
-break;
-case 111:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-2]);
-break;
-case 112:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.Literal('this')));
-break;
-case 113:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.Literal('this')));
-break;
-case 114:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('this')), [yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))], 'this'));
-break;
-case 115:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Arr([]));
-break;
-case 116:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Arr($$[$0-2]));
-break;
-case 117:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('inclusive');
-break;
-case 118:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('exclusive');
-break;
-case 119:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Range($$[$0-3], $$[$0-1], $$[$0-2]));
-break;
-case 120:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Range($$[$0-2], $$[$0], $$[$0-1]));
-break;
-case 121:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range($$[$0-1], null, $$[$0]));
-break;
-case 122:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range(null, $$[$0], $$[$0-1]));
-break;
-case 123:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Range(null, null, $$[$0]));
-break;
-case 124:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]);
-break;
-case 125:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0]));
-break;
-case 126:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0]));
-break;
-case 127:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-2]);
-break;
-case 128:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2]));
-break;
-case 129:this.$ = $$[$0];
-break;
-case 130:this.$ = $$[$0];
-break;
-case 131:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Expansion);
-break;
-case 132:this.$ = $$[$0];
-break;
-case 133:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([].concat($$[$0-2], $$[$0]));
-break;
-case 134:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Try($$[$0]));
-break;
-case 135:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Try($$[$0-1], $$[$0][0], $$[$0][1]));
-break;
-case 136:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Try($$[$0-2], null, null, $$[$0]));
-break;
-case 137:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Try($$[$0-3], $$[$0-2][0], $$[$0-2][1], $$[$0]));
-break;
-case 138:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-1], $$[$0]]);
-break;
-case 139:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Value($$[$0-1])), $$[$0]]);
-break;
-case 140:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([null, $$[$0]]);
-break;
-case 141:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Throw($$[$0]));
-break;
-case 142:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Parens($$[$0-1]));
-break;
-case 143:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Parens($$[$0-2]));
-break;
-case 144:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0]));
-break;
-case 145:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], {
-          guard: $$[$0]
-        }));
-break;
-case 146:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0], {
-          invert: true
-        }));
-break;
-case 147:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], {
-          invert: true,
-          guard: $$[$0]
-        }));
-break;
-case 148:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].addBody($$[$0]));
-break;
-case 149:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0].addBody(yy.addLocationDataFn(_$[$0-1])(yy.Block.wrap([$$[$0-1]]))));
-break;
-case 150:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0].addBody(yy.addLocationDataFn(_$[$0-1])(yy.Block.wrap([$$[$0-1]]))));
-break;
-case 151:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])($$[$0]);
-break;
-case 152:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('true'))).addBody($$[$0]));
-break;
-case 153:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('true'))).addBody(yy.addLocationDataFn(_$[$0])(yy.Block.wrap([$$[$0]]))));
-break;
-case 154:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0-1], $$[$0]));
-break;
-case 155:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0-1], $$[$0]));
-break;
-case 156:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0], $$[$0-1]));
-break;
-case 157:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({
-          source: yy.addLocationDataFn(_$[$0])(new yy.Value($$[$0]))
-        });
-break;
-case 158:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])((function () {
-        $$[$0].own = $$[$0-1].own;
-        $$[$0].name = $$[$0-1][0];
-        $$[$0].index = $$[$0-1][1];
-        return $$[$0];
-      }()));
-break;
-case 159:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0]);
-break;
-case 160:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () {
-        $$[$0].own = true;
-        return $$[$0];
-      }()));
-break;
-case 161:this.$ = $$[$0];
-break;
-case 162:this.$ = $$[$0];
-break;
-case 163:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 164:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 165:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]);
-break;
-case 166:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-2], $$[$0]]);
-break;
-case 167:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({
-          source: $$[$0]
-        });
-break;
-case 168:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({
-          source: $$[$0],
-          object: true
-        });
-break;
-case 169:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({
-          source: $$[$0-2],
-          guard: $$[$0]
-        });
-break;
-case 170:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({
-          source: $$[$0-2],
-          guard: $$[$0],
-          object: true
-        });
-break;
-case 171:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({
-          source: $$[$0-2],
-          step: $$[$0]
-        });
-break;
-case 172:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({
-          source: $$[$0-4],
-          guard: $$[$0-2],
-          step: $$[$0]
-        });
-break;
-case 173:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({
-          source: $$[$0-4],
-          step: $$[$0-2],
-          guard: $$[$0]
-        });
-break;
-case 174:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Switch($$[$0-3], $$[$0-1]));
-break;
-case 175:this.$ = yy.addLocationDataFn(_$[$0-6], _$[$0])(new yy.Switch($$[$0-5], $$[$0-3], $$[$0-1]));
-break;
-case 176:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Switch(null, $$[$0-1]));
-break;
-case 177:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])(new yy.Switch(null, $$[$0-3], $$[$0-1]));
-break;
-case 178:this.$ = $$[$0];
-break;
-case 179:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].concat($$[$0]));
-break;
-case 180:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([[$$[$0-1], $$[$0]]]);
-break;
-case 181:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])([[$$[$0-2], $$[$0-1]]]);
-break;
-case 182:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0-1], $$[$0], {
-          type: $$[$0-2]
-        }));
-break;
-case 183:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])($$[$0-4].addElse(yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0-1], $$[$0], {
-          type: $$[$0-2]
-        }))));
-break;
-case 184:this.$ = $$[$0];
-break;
-case 185:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].addElse($$[$0]));
-break;
-case 186:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0], yy.addLocationDataFn(_$[$0-2])(yy.Block.wrap([$$[$0-2]])), {
-          type: $$[$0-1],
-          statement: true
-        }));
-break;
-case 187:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0], yy.addLocationDataFn(_$[$0-2])(yy.Block.wrap([$$[$0-2]])), {
-          type: $$[$0-1],
-          statement: true
-        }));
-break;
-case 188:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0]));
-break;
-case 189:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0]));
-break;
-case 190:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('-', $$[$0]));
-break;
-case 191:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('+', $$[$0]));
-break;
-case 192:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0]));
-break;
-case 193:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0]));
-break;
-case 194:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0-1], null, true));
-break;
-case 195:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0-1], null, true));
-break;
-case 196:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Existence($$[$0-1]));
-break;
-case 197:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('+', $$[$0-2], $$[$0]));
-break;
-case 198:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('-', $$[$0-2], $$[$0]));
-break;
-case 199:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0]));
-break;
-case 200:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0]));
-break;
-case 201:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0]));
-break;
-case 202:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0]));
-break;
-case 203:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0]));
-break;
-case 204:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () {
-        if ($$[$0-1].charAt(0) === '!') {
-          return new yy.Op($$[$0-1].slice(1), $$[$0-2], $$[$0]).invert();
-        } else {
-          return new yy.Op($$[$0-1], $$[$0-2], $$[$0]);
-        }
-      }()));
-break;
-case 205:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0], $$[$0-1]));
-break;
-case 206:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1], $$[$0-3]));
-break;
-case 207:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0], $$[$0-2]));
-break;
-case 208:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Extends($$[$0-2], $$[$0]));
-break;
-}
-},
-table: [{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[3]},{1:[2,2],6:[1,73]},{1:[2,3],6:[2,3],26:[2,3],102:[2,3]},{1:[2,6],6:[2,6],26:[2,6],102:[2,6],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,7],6:[2,7],26:[2,7],102:[2,7],103:87,104:[1,64],106:[1,65],109:88,110:[1,67],111:68,126:[1,86]},{1:[2,11],6:[2,11],25:[2,11],26:[2,11],49:[2,11],54:[2,11],57:[2,11],62:90,66:[1,92],67:[1,93],68:[1,94],69:[1,95],70:96,71:[1,97],73:[2,11],74:[1,98],78:[2,11],81:89,84:[1,91],85:[2,108],86:[2,11],91:[2,11],93:[2,11],102:[2,11],104:[2,11],105:[2,11],106:[2,11],110:[2,11],118:[2,11],126:[2,11],129:[2,11],130:[2,11],133:[2,11],134:[2,11],135:[2,11],136:[2,11],137:[2,11],138:[2,11],139:[2,11]},{1:[2,12],6:[2,12],25:[2,12],26:[2,12],49:[2,12],54:[2,12],57:[2,12],62:100,66:[1,92],67:[1,93],68:[1,94],69:[1,95],70:96,71:[1,97],73:[2,12],74:[1,98],78:[2,12],81:99,84:[1,91],85:[2,108],86:[2,12],91:[2,12],93:[2,12],102:[2,12],104:[2,12],105:[2,12],106:[2,12],110:[2,12],118:[2,12],126:[2,12],129:[2,12],130:[2,12],133:[2,12],134:[2,12],135:[2,12],136:[2,12],137:[2,12],138:[2,12],139:[2,12]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],49:[2,13],54:[2,13],57:[2,13],73:[2,13],78:[2,13],86:[2,13],91:[2,13],93:[2,13],102:[2,13],104:[2,13],105:[2,13],106:[2,13],110:[2,13],118:[2,13],126:[2,13],129:[2,13],130:[2,13],133:[2,13],134:[2,13],135:[2,13],136:[2,13],137:[2,13],138:[2,13],139:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],49:[2,14],54:[2,14],57:[2,14],73:[2,14],78:[2,14],86:[2,14],91:[2,14],93:[2,14],102:[2,14],104:[2,14],105:[2,14],106:[2,14],110:[2,14],118:[2,14],126:[2,14],129:[2,14],130:[2,14],133:[2,14],134:[2,14],135:[2,14],136:[2,14],137:[2,14],138:[2,14],139:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],49:[2,15],54:[2,15],57:[2,15],73:[2,15],78:[2,15],86:[2,15],91:[2,15],93:[2,15],102:[2,15],104:[2,15],105:[2,15],106:[2,15],110:[2,15],118:[2,15],126:[2,15],129:[2,15],130:[2,15],133:[2,15],134:[2,15],135:[2,15],136:[2,15],137:[2,15],138:[2,15],139:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],49:[2,16],54:[2,16],57:[2,16],73:[2,16],78:[2,16],86:[2,16],91:[2,16],93:[2,16],102:[2,16],104:[2,16],105:[2,16],106:[2,16],110:[2,16],118:[2,16],126:[2,16],129:[2,16],130:[2,16],133:[2,16],134:[2,16],135:[2,16],136:[2,16],137:[2,16],138:[2,16],139:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],49:[2,17],54:[2,17],57:[2,17],73:[2,17],78:[2,17],86:[2,17],91:[2,17],93:[2,17],102:[2,17],104:[2,17],105:[2,17],106:[2,17],110:[2,17],118:[2,17],126:[2,17],129:[2,17],130:[2,17],133:[2,17],134:[2,17],135:[2,17],136:[2,17],137:[2,17],138:[2,17],139:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],49:[2,18],54:[2,18],57:[2,18],73:[2,18],78:[2,18],86:[2,18],91:[2,18],93:[2,18],102:[2,18],104:[2,18],105:[2,18],106:[2,18],110:[2,18],118:[2,18],126:[2,18],129:[2,18],130:[2,18],133:[2,18],134:[2,18],135:[2,18],136:[2,18],137:[2,18],138:[2,18],139:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],49:[2,19],54:[2,19],57:[2,19],73:[2,19],78:[2,19],86:[2,19],91:[2,19],93:[2,19],102:[2,19],104:[2,19],105:[2,19],106:[2,19],110:[2,19],118:[2,19],126:[2,19],129:[2,19],130:[2,19],133:[2,19],134:[2,19],135:[2,19],136:[2,19],137:[2,19],138:[2,19],139:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],49:[2,20],54:[2,20],57:[2,20],73:[2,20],78:[2,20],86:[2,20],91:[2,20],93:[2,20],102:[2,20],104:[2,20],105:[2,20],106:[2,20],110:[2,20],118:[2,20],126:[2,20],129:[2,20],130:[2,20],133:[2,20],134:[2,20],135:[2,20],136:[2,20],137:[2,20],138:[2,20],139:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],49:[2,21],54:[2,21],57:[2,21],73:[2,21],78:[2,21],86:[2,21],91:[2,21],93:[2,21],102:[2,21],104:[2,21],105:[2,21],106:[2,21],110:[2,21],118:[2,21],126:[2,21],129:[2,21],130:[2,21],133:[2,21],134:[2,21],135:[2,21],136:[2,21],137:[2,21],138:[2,21],139:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],49:[2,22],54:[2,22],57:[2,22],73:[2,22],78:[2,22],86:[2,22],91:[2,22],93:[2,22],102:[2,22],104:[2,22],105:[2,22],106:[2,22],110:[2,22],118:[2,22],126:[2,22],129:[2,22],130:[2,22],133:[2,22],134:[2,22],135:[2,22],136:[2,22],137:[2,22],138:[2,22],139:[2,22]},{1:[2,8],6:[2,8],26:[2,8],102:[2,8],104:[2,8],106:[2,8],110:[2,8],126:[2,8]},{1:[2,9],6:[2,9],26:[2,9],102:[2,9],104:[2,9],106:[2,9],110:[2,9],126:[2,9]},{1:[2,10],6:[2,10],26:[2,10],102:[2,10],104:[2,10],106:[2,10],110:[2,10],126:[2,10]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],40:[1,101],49:[2,75],54:[2,75],57:[2,75],66:[2,75],67:[2,75],68:[2,75],69:[2,75],71:[2,75],73:[2,75],74:[2,75],78:[2,75],84:[2,75],85:[2,75],86:[2,75],91:[2,75],93:[2,75],102:[2,75],104:[2,75],105:[2,75],106:[2,75],110:[2,75],118:[2,75],126:[2,75],129:[2,75],130:[2,75],133:[2,75],134:[2,75],135:[2,75],136:[2,75],137:[2,75],138:[2,75],139:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],49:[2,76],54:[2,76],57:[2,76],66:[2,76],67:[2,76],68:[2,76],69:[2,76],71:[2,76],73:[2,76],74:[2,76],78:[2,76],84:[2,76],85:[2,76],86:[2,76],91:[2,76],93:[2,76],102:[2,76],104:[2,76],105:[2,76],106:[2,76],110:[2,76],118:[2,76],126:[2,76],129:[2,76],130:[2,76],133:[2,76],134:[2,76],135:[2,76],136:[2,76],137:[2,76],138:[2,76],139:[2,76]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],49:[2,77],54:[2,77],57:[2,77],66:[2,77],67:[2,77],68:[2,77],69:[2,77],71:[2,77],73:[2,77],74:[2,77],78:[2,77],84:[2,77],85:[2,77],86:[2,77],91:[2,77],93:[2,77],102:[2,77],104:[2,77],105:[2,77],106:[2,77],110:[2,77],118:[2,77],126:[2,77],129:[2,77],130:[2,77],133:[2,77],134:[2,77],135:[2,77],136:[2,77],137:[2,77],138:[2,77],139:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],49:[2,78],54:[2,78],57:[2,78],66:[2,78],67:[2,78],68:[2,78],69:[2,78],71:[2,78],73:[2,78],74:[2,78],78:[2,78],84:[2,78],85:[2,78],86:[2,78],91:[2,78],93:[2,78],102:[2,78],104:[2,78],105:[2,78],106:[2,78],110:[2,78],118:[2,78],126:[2,78],129:[2,78],130:[2,78],133:[2,78],134:[2,78],135:[2,78],136:[2,78],137:[2,78],138:[2,78],139:[2,78]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],49:[2,79],54:[2,79],57:[2,79],66:[2,79],67:[2,79],68:[2,79],69:[2,79],71:[2,79],73:[2,79],74:[2,79],78:[2,79],84:[2,79],85:[2,79],86:[2,79],91:[2,79],93:[2,79],102:[2,79],104:[2,79],105:[2,79],106:[2,79],110:[2,79],118:[2,79],126:[2,79],129:[2,79],130:[2,79],133:[2,79],134:[2,79],135:[2,79],136:[2,79],137:[2,79],138:[2,79],139:[2,79]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],49:[2,106],54:[2,106],57:[2,106],66:[2,106],67:[2,106],68:[2,106],69:[2,106],71:[2,106],73:[2,106],74:[2,106],78:[2,106],82:102,84:[2,106],85:[1,103],86:[2,106],91:[2,106],93:[2,106],102:[2,106],104:[2,106],105:[2,106],106:[2,106],110:[2,106],118:[2,106],126:[2,106],129:[2,106],130:[2,106],133:[2,106],134:[2,106],135:[2,106],136:[2,106],137:[2,106],138:[2,106],139:[2,106]},{6:[2,54],25:[2,54],27:108,28:[1,72],44:109,48:104,49:[2,54],54:[2,54],55:105,56:106,57:[1,107],58:110,59:111,76:[1,69],89:[1,112],90:[1,113]},{24:114,25:[1,115]},{7:116,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:118,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:119,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:120,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{12:122,13:123,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:124,44:62,58:46,59:47,61:121,63:23,64:24,65:25,76:[1,69],83:[1,26],88:[1,57],89:[1,58],90:[1,56],101:[1,55]},{12:122,13:123,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:124,44:62,58:46,59:47,61:125,63:23,64:24,65:25,76:[1,69],83:[1,26],88:[1,57],89:[1,58],90:[1,56],101:[1,55]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],40:[2,72],49:[2,72],54:[2,72],57:[2,72],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,72],74:[2,72],78:[2,72],80:[1,129],84:[2,72],85:[2,72],86:[2,72],91:[2,72],93:[2,72],102:[2,72],104:[2,72],105:[2,72],106:[2,72],110:[2,72],118:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[1,126],132:[1,127],133:[2,72],134:[2,72],135:[2,72],136:[2,72],137:[2,72],138:[2,72],139:[2,72],140:[1,128]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],49:[2,184],54:[2,184],57:[2,184],73:[2,184],78:[2,184],86:[2,184],91:[2,184],93:[2,184],102:[2,184],104:[2,184],105:[2,184],106:[2,184],110:[2,184],118:[2,184],121:[1,130],126:[2,184],129:[2,184],130:[2,184],133:[2,184],134:[2,184],135:[2,184],136:[2,184],137:[2,184],138:[2,184],139:[2,184]},{24:131,25:[1,115]},{24:132,25:[1,115]},{1:[2,151],6:[2,151],25:[2,151],26:[2,151],49:[2,151],54:[2,151],57:[2,151],73:[2,151],78:[2,151],86:[2,151],91:[2,151],93:[2,151],102:[2,151],104:[2,151],105:[2,151],106:[2,151],110:[2,151],118:[2,151],126:[2,151],129:[2,151],130:[2,151],133:[2,151],134:[2,151],135:[2,151],136:[2,151],137:[2,151],138:[2,151],139:[2,151]},{24:133,25:[1,115]},{7:134,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,135],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,96],6:[2,96],12:122,13:123,24:136,25:[1,115],26:[2,96],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:124,44:62,49:[2,96],54:[2,96],57:[2,96],58:46,59:47,61:138,63:23,64:24,65:25,73:[2,96],76:[1,69],78:[2,96],80:[1,137],83:[1,26],86:[2,96],88:[1,57],89:[1,58],90:[1,56],91:[2,96],93:[2,96],101:[1,55],102:[2,96],104:[2,96],105:[2,96],106:[2,96],110:[2,96],118:[2,96],126:[2,96],129:[2,96],130:[2,96],133:[2,96],134:[2,96],135:[2,96],136:[2,96],137:[2,96],138:[2,96],139:[2,96]},{7:139,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,46],6:[2,46],7:140,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[2,46],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],102:[2,46],103:38,104:[2,46],106:[2,46],107:39,108:[1,66],109:40,110:[2,46],111:68,119:[1,41],124:36,125:[1,63],126:[2,46],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,47],6:[2,47],25:[2,47],26:[2,47],54:[2,47],78:[2,47],102:[2,47],104:[2,47],106:[2,47],110:[2,47],126:[2,47]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],40:[2,73],49:[2,73],54:[2,73],57:[2,73],66:[2,73],67:[2,73],68:[2,73],69:[2,73],71:[2,73],73:[2,73],74:[2,73],78:[2,73],84:[2,73],85:[2,73],86:[2,73],91:[2,73],93:[2,73],102:[2,73],104:[2,73],105:[2,73],106:[2,73],110:[2,73],118:[2,73],126:[2,73],129:[2,73],130:[2,73],133:[2,73],134:[2,73],135:[2,73],136:[2,73],137:[2,73],138:[2,73],139:[2,73]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],40:[2,74],49:[2,74],54:[2,74],57:[2,74],66:[2,74],67:[2,74],68:[2,74],69:[2,74],71:[2,74],73:[2,74],74:[2,74],78:[2,74],84:[2,74],85:[2,74],86:[2,74],91:[2,74],93:[2,74],102:[2,74],104:[2,74],105:[2,74],106:[2,74],110:[2,74],118:[2,74],126:[2,74],129:[2,74],130:[2,74],133:[2,74],134:[2,74],135:[2,74],136:[2,74],137:[2,74],138:[2,74],139:[2,74]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],49:[2,28],54:[2,28],57:[2,28],66:[2,28],67:[2,28],68:[2,28],69:[2,28],71:[2,28],73:[2,28],74:[2,28],78:[2,28],84:[2,28],85:[2,28],86:[2,28],91:[2,28],93:[2,28],102:[2,28],104:[2,28],105:[2,28],106:[2,28],110:[2,28],118:[2,28],126:[2,28],129:[2,28],130:[2,28],133:[2,28],134:[2,28],135:[2,28],136:[2,28],137:[2,28],138:[2,28],139:[2,28]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],49:[2,29],54:[2,29],57:[2,29],66:[2,29],67:[2,29],68:[2,29],69:[2,29],71:[2,29],73:[2,29],74:[2,29],78:[2,29],84:[2,29],85:[2,29],86:[2,29],91:[2,29],93:[2,29],102:[2,29],104:[2,29],105:[2,29],106:[2,29],110:[2,29],118:[2,29],126:[2,29],129:[2,29],130:[2,29],133:[2,29],134:[2,29],135:[2,29],136:[2,29],137:[2,29],138:[2,29],139:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],49:[2,30],54:[2,30],57:[2,30],66:[2,30],67:[2,30],68:[2,30],69:[2,30],71:[2,30],73:[2,30],74:[2,30],78:[2,30],84:[2,30],85:[2,30],86:[2,30],91:[2,30],93:[2,30],102:[2,30],104:[2,30],105:[2,30],106:[2,30],110:[2,30],118:[2,30],126:[2,30],129:[2,30],130:[2,30],133:[2,30],134:[2,30],135:[2,30],136:[2,30],137:[2,30],138:[2,30],139:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],49:[2,31],54:[2,31],57:[2,31],66:[2,31],67:[2,31],68:[2,31],69:[2,31],71:[2,31],73:[2,31],74:[2,31],78:[2,31],84:[2,31],85:[2,31],86:[2,31],91:[2,31],93:[2,31],102:[2,31],104:[2,31],105:[2,31],106:[2,31],110:[2,31],118:[2,31],126:[2,31],129:[2,31],130:[2,31],133:[2,31],134:[2,31],135:[2,31],136:[2,31],137:[2,31],138:[2,31],139:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],49:[2,32],54:[2,32],57:[2,32],66:[2,32],67:[2,32],68:[2,32],69:[2,32],71:[2,32],73:[2,32],74:[2,32],78:[2,32],84:[2,32],85:[2,32],86:[2,32],91:[2,32],93:[2,32],102:[2,32],104:[2,32],105:[2,32],106:[2,32],110:[2,32],118:[2,32],126:[2,32],129:[2,32],130:[2,32],133:[2,32],134:[2,32],135:[2,32],136:[2,32],137:[2,32],138:[2,32],139:[2,32]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],49:[2,33],54:[2,33],57:[2,33],66:[2,33],67:[2,33],68:[2,33],69:[2,33],71:[2,33],73:[2,33],74:[2,33],78:[2,33],84:[2,33],85:[2,33],86:[2,33],91:[2,33],93:[2,33],102:[2,33],104:[2,33],105:[2,33],106:[2,33],110:[2,33],118:[2,33],126:[2,33],129:[2,33],130:[2,33],133:[2,33],134:[2,33],135:[2,33],136:[2,33],137:[2,33],138:[2,33],139:[2,33]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],49:[2,34],54:[2,34],57:[2,34],66:[2,34],67:[2,34],68:[2,34],69:[2,34],71:[2,34],73:[2,34],74:[2,34],78:[2,34],84:[2,34],85:[2,34],86:[2,34],91:[2,34],93:[2,34],102:[2,34],104:[2,34],105:[2,34],106:[2,34],110:[2,34],118:[2,34],126:[2,34],129:[2,34],130:[2,34],133:[2,34],134:[2,34],135:[2,34],136:[2,34],137:[2,34],138:[2,34],139:[2,34]},{4:141,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,142],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:143,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,147],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],57:[1,149],58:46,59:47,60:148,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],87:145,88:[1,57],89:[1,58],90:[1,56],91:[1,144],94:146,96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,112],6:[2,112],25:[2,112],26:[2,112],49:[2,112],54:[2,112],57:[2,112],66:[2,112],67:[2,112],68:[2,112],69:[2,112],71:[2,112],73:[2,112],74:[2,112],78:[2,112],84:[2,112],85:[2,112],86:[2,112],91:[2,112],93:[2,112],102:[2,112],104:[2,112],105:[2,112],106:[2,112],110:[2,112],118:[2,112],126:[2,112],129:[2,112],130:[2,112],133:[2,112],134:[2,112],135:[2,112],136:[2,112],137:[2,112],138:[2,112],139:[2,112]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],27:150,28:[1,72],49:[2,113],54:[2,113],57:[2,113],66:[2,113],67:[2,113],68:[2,113],69:[2,113],71:[2,113],73:[2,113],74:[2,113],78:[2,113],84:[2,113],85:[2,113],86:[2,113],91:[2,113],93:[2,113],102:[2,113],104:[2,113],105:[2,113],106:[2,113],110:[2,113],118:[2,113],126:[2,113],129:[2,113],130:[2,113],133:[2,113],134:[2,113],135:[2,113],136:[2,113],137:[2,113],138:[2,113],139:[2,113]},{25:[2,50]},{25:[2,51]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],40:[2,68],49:[2,68],54:[2,68],57:[2,68],66:[2,68],67:[2,68],68:[2,68],69:[2,68],71:[2,68],73:[2,68],74:[2,68],78:[2,68],80:[2,68],84:[2,68],85:[2,68],86:[2,68],91:[2,68],93:[2,68],102:[2,68],104:[2,68],105:[2,68],106:[2,68],110:[2,68],118:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68],135:[2,68],136:[2,68],137:[2,68],138:[2,68],139:[2,68],140:[2,68]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],40:[2,71],49:[2,71],54:[2,71],57:[2,71],66:[2,71],67:[2,71],68:[2,71],69:[2,71],71:[2,71],73:[2,71],74:[2,71],78:[2,71],80:[2,71],84:[2,71],85:[2,71],86:[2,71],91:[2,71],93:[2,71],102:[2,71],104:[2,71],105:[2,71],106:[2,71],110:[2,71],118:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71],135:[2,71],136:[2,71],137:[2,71],138:[2,71],139:[2,71],140:[2,71]},{7:151,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:152,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:153,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:155,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:154,25:[1,115],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{27:160,28:[1,72],44:161,58:162,59:163,64:156,76:[1,69],89:[1,112],90:[1,56],113:157,114:[1,158],115:159},{112:164,116:[1,165],117:[1,166]},{6:[2,91],10:170,25:[2,91],27:171,28:[1,72],29:172,30:[1,70],31:[1,71],41:168,42:169,44:173,46:[1,45],54:[2,91],77:167,78:[2,91],89:[1,112]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],43:[2,26],49:[2,26],54:[2,26],57:[2,26],66:[2,26],67:[2,26],68:[2,26],69:[2,26],71:[2,26],73:[2,26],74:[2,26],78:[2,26],84:[2,26],85:[2,26],86:[2,26],91:[2,26],93:[2,26],102:[2,26],104:[2,26],105:[2,26],106:[2,26],110:[2,26],118:[2,26],126:[2,26],129:[2,26],130:[2,26],133:[2,26],134:[2,26],135:[2,26],136:[2,26],137:[2,26],138:[2,26],139:[2,26]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],43:[2,27],49:[2,27],54:[2,27],57:[2,27],66:[2,27],67:[2,27],68:[2,27],69:[2,27],71:[2,27],73:[2,27],74:[2,27],78:[2,27],84:[2,27],85:[2,27],86:[2,27],91:[2,27],93:[2,27],102:[2,27],104:[2,27],105:[2,27],106:[2,27],110:[2,27],118:[2,27],126:[2,27],129:[2,27],130:[2,27],133:[2,27],134:[2,27],135:[2,27],136:[2,27],137:[2,27],138:[2,27],139:[2,27]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],40:[2,25],43:[2,25],49:[2,25],54:[2,25],57:[2,25],66:[2,25],67:[2,25],68:[2,25],69:[2,25],71:[2,25],73:[2,25],74:[2,25],78:[2,25],80:[2,25],84:[2,25],85:[2,25],86:[2,25],91:[2,25],93:[2,25],102:[2,25],104:[2,25],105:[2,25],106:[2,25],110:[2,25],116:[2,25],117:[2,25],118:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25],135:[2,25],136:[2,25],137:[2,25],138:[2,25],139:[2,25],140:[2,25]},{1:[2,5],5:174,6:[2,5],7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[2,5],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],102:[2,5],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,196],6:[2,196],25:[2,196],26:[2,196],49:[2,196],54:[2,196],57:[2,196],73:[2,196],78:[2,196],86:[2,196],91:[2,196],93:[2,196],102:[2,196],104:[2,196],105:[2,196],106:[2,196],110:[2,196],118:[2,196],126:[2,196],129:[2,196],130:[2,196],133:[2,196],134:[2,196],135:[2,196],136:[2,196],137:[2,196],138:[2,196],139:[2,196]},{7:175,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:176,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:177,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:178,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:179,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:180,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:181,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:182,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:183,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,150],6:[2,150],25:[2,150],26:[2,150],49:[2,150],54:[2,150],57:[2,150],73:[2,150],78:[2,150],86:[2,150],91:[2,150],93:[2,150],102:[2,150],104:[2,150],105:[2,150],106:[2,150],110:[2,150],118:[2,150],126:[2,150],129:[2,150],130:[2,150],133:[2,150],134:[2,150],135:[2,150],136:[2,150],137:[2,150],138:[2,150],139:[2,150]},{1:[2,155],6:[2,155],25:[2,155],26:[2,155],49:[2,155],54:[2,155],57:[2,155],73:[2,155],78:[2,155],86:[2,155],91:[2,155],93:[2,155],102:[2,155],104:[2,155],105:[2,155],106:[2,155],110:[2,155],118:[2,155],126:[2,155],129:[2,155],130:[2,155],133:[2,155],134:[2,155],135:[2,155],136:[2,155],137:[2,155],138:[2,155],139:[2,155]},{7:184,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,149],6:[2,149],25:[2,149],26:[2,149],49:[2,149],54:[2,149],57:[2,149],73:[2,149],78:[2,149],86:[2,149],91:[2,149],93:[2,149],102:[2,149],104:[2,149],105:[2,149],106:[2,149],110:[2,149],118:[2,149],126:[2,149],129:[2,149],130:[2,149],133:[2,149],134:[2,149],135:[2,149],136:[2,149],137:[2,149],138:[2,149],139:[2,149]},{1:[2,154],6:[2,154],25:[2,154],26:[2,154],49:[2,154],54:[2,154],57:[2,154],73:[2,154],78:[2,154],86:[2,154],91:[2,154],93:[2,154],102:[2,154],104:[2,154],105:[2,154],106:[2,154],110:[2,154],118:[2,154],126:[2,154],129:[2,154],130:[2,154],133:[2,154],134:[2,154],135:[2,154],136:[2,154],137:[2,154],138:[2,154],139:[2,154]},{82:185,85:[1,103]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],40:[2,69],49:[2,69],54:[2,69],57:[2,69],66:[2,69],67:[2,69],68:[2,69],69:[2,69],71:[2,69],73:[2,69],74:[2,69],78:[2,69],80:[2,69],84:[2,69],85:[2,69],86:[2,69],91:[2,69],93:[2,69],102:[2,69],104:[2,69],105:[2,69],106:[2,69],110:[2,69],118:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69],135:[2,69],136:[2,69],137:[2,69],138:[2,69],139:[2,69],140:[2,69]},{85:[2,109]},{27:186,28:[1,72]},{27:187,28:[1,72]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],27:188,28:[1,72],40:[2,84],49:[2,84],54:[2,84],57:[2,84],66:[2,84],67:[2,84],68:[2,84],69:[2,84],71:[2,84],73:[2,84],74:[2,84],78:[2,84],80:[2,84],84:[2,84],85:[2,84],86:[2,84],91:[2,84],93:[2,84],102:[2,84],104:[2,84],105:[2,84],106:[2,84],110:[2,84],118:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84],135:[2,84],136:[2,84],137:[2,84],138:[2,84],139:[2,84],140:[2,84]},{27:189,28:[1,72]},{1:[2,85],6:[2,85],25:[2,85],26:[2,85],40:[2,85],49:[2,85],54:[2,85],57:[2,85],66:[2,85],67:[2,85],68:[2,85],69:[2,85],71:[2,85],73:[2,85],74:[2,85],78:[2,85],80:[2,85],84:[2,85],85:[2,85],86:[2,85],91:[2,85],93:[2,85],102:[2,85],104:[2,85],105:[2,85],106:[2,85],110:[2,85],118:[2,85],126:[2,85],129:[2,85],130:[2,85],131:[2,85],132:[2,85],133:[2,85],134:[2,85],135:[2,85],136:[2,85],137:[2,85],138:[2,85],139:[2,85],140:[2,85]},{7:191,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],57:[1,195],58:46,59:47,61:35,63:23,64:24,65:25,72:190,75:192,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],92:193,93:[1,194],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{70:196,71:[1,97],74:[1,98]},{82:197,85:[1,103]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],40:[2,70],49:[2,70],54:[2,70],57:[2,70],66:[2,70],67:[2,70],68:[2,70],69:[2,70],71:[2,70],73:[2,70],74:[2,70],78:[2,70],80:[2,70],84:[2,70],85:[2,70],86:[2,70],91:[2,70],93:[2,70],102:[2,70],104:[2,70],105:[2,70],106:[2,70],110:[2,70],118:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70],135:[2,70],136:[2,70],137:[2,70],138:[2,70],139:[2,70],140:[2,70]},{6:[1,199],7:198,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,200],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],49:[2,107],54:[2,107],57:[2,107],66:[2,107],67:[2,107],68:[2,107],69:[2,107],71:[2,107],73:[2,107],74:[2,107],78:[2,107],84:[2,107],85:[2,107],86:[2,107],91:[2,107],93:[2,107],102:[2,107],104:[2,107],105:[2,107],106:[2,107],110:[2,107],118:[2,107],126:[2,107],129:[2,107],130:[2,107],133:[2,107],134:[2,107],135:[2,107],136:[2,107],137:[2,107],138:[2,107],139:[2,107]},{7:203,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,147],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],57:[1,149],58:46,59:47,60:148,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],86:[1,201],87:202,88:[1,57],89:[1,58],90:[1,56],94:146,96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{6:[2,52],25:[2,52],49:[1,204],53:206,54:[1,205]},{6:[2,55],25:[2,55],26:[2,55],49:[2,55],54:[2,55]},{6:[2,59],25:[2,59],26:[2,59],40:[1,208],49:[2,59],54:[2,59],57:[1,207]},{6:[2,62],25:[2,62],26:[2,62],49:[2,62],54:[2,62]},{6:[2,63],25:[2,63],26:[2,63],40:[2,63],49:[2,63],54:[2,63],57:[2,63]},{6:[2,64],25:[2,64],26:[2,64],40:[2,64],49:[2,64],54:[2,64],57:[2,64]},{6:[2,65],25:[2,65],26:[2,65],40:[2,65],49:[2,65],54:[2,65],57:[2,65]},{6:[2,66],25:[2,66],26:[2,66],40:[2,66],49:[2,66],54:[2,66],57:[2,66]},{27:150,28:[1,72]},{7:203,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,147],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],57:[1,149],58:46,59:47,60:148,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],87:145,88:[1,57],89:[1,58],90:[1,56],91:[1,144],94:146,96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,49],6:[2,49],25:[2,49],26:[2,49],49:[2,49],54:[2,49],57:[2,49],73:[2,49],78:[2,49],86:[2,49],91:[2,49],93:[2,49],102:[2,49],104:[2,49],105:[2,49],106:[2,49],110:[2,49],118:[2,49],126:[2,49],129:[2,49],130:[2,49],133:[2,49],134:[2,49],135:[2,49],136:[2,49],137:[2,49],138:[2,49],139:[2,49]},{4:210,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[1,209],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],49:[2,188],54:[2,188],57:[2,188],73:[2,188],78:[2,188],86:[2,188],91:[2,188],93:[2,188],102:[2,188],103:84,104:[2,188],105:[2,188],106:[2,188],109:85,110:[2,188],111:68,118:[2,188],126:[2,188],129:[2,188],130:[2,188],133:[1,74],134:[2,188],135:[2,188],136:[2,188],137:[2,188],138:[2,188],139:[2,188]},{103:87,104:[1,64],106:[1,65],109:88,110:[1,67],111:68,126:[1,86]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],49:[2,189],54:[2,189],57:[2,189],73:[2,189],78:[2,189],86:[2,189],91:[2,189],93:[2,189],102:[2,189],103:84,104:[2,189],105:[2,189],106:[2,189],109:85,110:[2,189],111:68,118:[2,189],126:[2,189],129:[2,189],130:[2,189],133:[1,74],134:[2,189],135:[1,78],136:[2,189],137:[2,189],138:[2,189],139:[2,189]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],49:[2,190],54:[2,190],57:[2,190],73:[2,190],78:[2,190],86:[2,190],91:[2,190],93:[2,190],102:[2,190],103:84,104:[2,190],105:[2,190],106:[2,190],109:85,110:[2,190],111:68,118:[2,190],126:[2,190],129:[2,190],130:[2,190],133:[1,74],134:[2,190],135:[1,78],136:[2,190],137:[2,190],138:[2,190],139:[2,190]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],49:[2,191],54:[2,191],57:[2,191],73:[2,191],78:[2,191],86:[2,191],91:[2,191],93:[2,191],102:[2,191],103:84,104:[2,191],105:[2,191],106:[2,191],109:85,110:[2,191],111:68,118:[2,191],126:[2,191],129:[2,191],130:[2,191],133:[1,74],134:[2,191],135:[1,78],136:[2,191],137:[2,191],138:[2,191],139:[2,191]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],49:[2,192],54:[2,192],57:[2,192],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,192],74:[2,72],78:[2,192],84:[2,72],85:[2,72],86:[2,192],91:[2,192],93:[2,192],102:[2,192],104:[2,192],105:[2,192],106:[2,192],110:[2,192],118:[2,192],126:[2,192],129:[2,192],130:[2,192],133:[2,192],134:[2,192],135:[2,192],136:[2,192],137:[2,192],138:[2,192],139:[2,192]},{62:90,66:[1,92],67:[1,93],68:[1,94],69:[1,95],70:96,71:[1,97],74:[1,98],81:89,84:[1,91],85:[2,108]},{62:100,66:[1,92],67:[1,93],68:[1,94],69:[1,95],70:96,71:[1,97],74:[1,98],81:99,84:[1,91],85:[2,108]},{66:[2,75],67:[2,75],68:[2,75],69:[2,75],71:[2,75],74:[2,75],84:[2,75],85:[2,75]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],49:[2,193],54:[2,193],57:[2,193],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,193],74:[2,72],78:[2,193],84:[2,72],85:[2,72],86:[2,193],91:[2,193],93:[2,193],102:[2,193],104:[2,193],105:[2,193],106:[2,193],110:[2,193],118:[2,193],126:[2,193],129:[2,193],130:[2,193],133:[2,193],134:[2,193],135:[2,193],136:[2,193],137:[2,193],138:[2,193],139:[2,193]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],49:[2,194],54:[2,194],57:[2,194],73:[2,194],78:[2,194],86:[2,194],91:[2,194],93:[2,194],102:[2,194],104:[2,194],105:[2,194],106:[2,194],110:[2,194],118:[2,194],126:[2,194],129:[2,194],130:[2,194],133:[2,194],134:[2,194],135:[2,194],136:[2,194],137:[2,194],138:[2,194],139:[2,194]},{1:[2,195],6:[2,195],25:[2,195],26:[2,195],49:[2,195],54:[2,195],57:[2,195],73:[2,195],78:[2,195],86:[2,195],91:[2,195],93:[2,195],102:[2,195],104:[2,195],105:[2,195],106:[2,195],110:[2,195],118:[2,195],126:[2,195],129:[2,195],130:[2,195],133:[2,195],134:[2,195],135:[2,195],136:[2,195],137:[2,195],138:[2,195],139:[2,195]},{6:[1,213],7:211,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,212],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:214,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{24:215,25:[1,115],125:[1,216]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],49:[2,134],54:[2,134],57:[2,134],73:[2,134],78:[2,134],86:[2,134],91:[2,134],93:[2,134],97:217,98:[1,218],99:[1,219],102:[2,134],104:[2,134],105:[2,134],106:[2,134],110:[2,134],118:[2,134],126:[2,134],129:[2,134],130:[2,134],133:[2,134],134:[2,134],135:[2,134],136:[2,134],137:[2,134],138:[2,134],139:[2,134]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],49:[2,148],54:[2,148],57:[2,148],73:[2,148],78:[2,148],86:[2,148],91:[2,148],93:[2,148],102:[2,148],104:[2,148],105:[2,148],106:[2,148],110:[2,148],118:[2,148],126:[2,148],129:[2,148],130:[2,148],133:[2,148],134:[2,148],135:[2,148],136:[2,148],137:[2,148],138:[2,148],139:[2,148]},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],49:[2,156],54:[2,156],57:[2,156],73:[2,156],78:[2,156],86:[2,156],91:[2,156],93:[2,156],102:[2,156],104:[2,156],105:[2,156],106:[2,156],110:[2,156],118:[2,156],126:[2,156],129:[2,156],130:[2,156],133:[2,156],134:[2,156],135:[2,156],136:[2,156],137:[2,156],138:[2,156],139:[2,156]},{25:[1,220],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{120:221,122:222,123:[1,223]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],49:[2,97],54:[2,97],57:[2,97],73:[2,97],78:[2,97],86:[2,97],91:[2,97],93:[2,97],102:[2,97],104:[2,97],105:[2,97],106:[2,97],110:[2,97],118:[2,97],126:[2,97],129:[2,97],130:[2,97],133:[2,97],134:[2,97],135:[2,97],136:[2,97],137:[2,97],138:[2,97],139:[2,97]},{7:224,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,100],6:[2,100],24:225,25:[1,115],26:[2,100],49:[2,100],54:[2,100],57:[2,100],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,100],74:[2,72],78:[2,100],80:[1,226],84:[2,72],85:[2,72],86:[2,100],91:[2,100],93:[2,100],102:[2,100],104:[2,100],105:[2,100],106:[2,100],110:[2,100],118:[2,100],126:[2,100],129:[2,100],130:[2,100],133:[2,100],134:[2,100],135:[2,100],136:[2,100],137:[2,100],138:[2,100],139:[2,100]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],49:[2,141],54:[2,141],57:[2,141],73:[2,141],78:[2,141],86:[2,141],91:[2,141],93:[2,141],102:[2,141],103:84,104:[2,141],105:[2,141],106:[2,141],109:85,110:[2,141],111:68,118:[2,141],126:[2,141],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,45],6:[2,45],26:[2,45],102:[2,45],103:84,104:[2,45],106:[2,45],109:85,110:[2,45],111:68,126:[2,45],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{6:[1,73],102:[1,227]},{4:228,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{6:[2,129],25:[2,129],54:[2,129],57:[1,230],91:[2,129],92:229,93:[1,194],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,115],6:[2,115],25:[2,115],26:[2,115],40:[2,115],49:[2,115],54:[2,115],57:[2,115],66:[2,115],67:[2,115],68:[2,115],69:[2,115],71:[2,115],73:[2,115],74:[2,115],78:[2,115],84:[2,115],85:[2,115],86:[2,115],91:[2,115],93:[2,115],102:[2,115],104:[2,115],105:[2,115],106:[2,115],110:[2,115],116:[2,115],117:[2,115],118:[2,115],126:[2,115],129:[2,115],130:[2,115],133:[2,115],134:[2,115],135:[2,115],136:[2,115],137:[2,115],138:[2,115],139:[2,115]},{6:[2,52],25:[2,52],53:231,54:[1,232],91:[2,52]},{6:[2,124],25:[2,124],26:[2,124],54:[2,124],86:[2,124],91:[2,124]},{7:203,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,147],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],57:[1,149],58:46,59:47,60:148,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],87:233,88:[1,57],89:[1,58],90:[1,56],94:146,96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{6:[2,130],25:[2,130],26:[2,130],54:[2,130],86:[2,130],91:[2,130]},{6:[2,131],25:[2,131],26:[2,131],54:[2,131],86:[2,131],91:[2,131]},{1:[2,114],6:[2,114],25:[2,114],26:[2,114],40:[2,114],43:[2,114],49:[2,114],54:[2,114],57:[2,114],66:[2,114],67:[2,114],68:[2,114],69:[2,114],71:[2,114],73:[2,114],74:[2,114],78:[2,114],80:[2,114],84:[2,114],85:[2,114],86:[2,114],91:[2,114],93:[2,114],102:[2,114],104:[2,114],105:[2,114],106:[2,114],110:[2,114],116:[2,114],117:[2,114],118:[2,114],126:[2,114],129:[2,114],130:[2,114],131:[2,114],132:[2,114],133:[2,114],134:[2,114],135:[2,114],136:[2,114],137:[2,114],138:[2,114],139:[2,114],140:[2,114]},{24:234,25:[1,115],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],49:[2,144],54:[2,144],57:[2,144],73:[2,144],78:[2,144],86:[2,144],91:[2,144],93:[2,144],102:[2,144],103:84,104:[1,64],105:[1,235],106:[1,65],109:85,110:[1,67],111:68,118:[2,144],126:[2,144],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],49:[2,146],54:[2,146],57:[2,146],73:[2,146],78:[2,146],86:[2,146],91:[2,146],93:[2,146],102:[2,146],103:84,104:[1,64],105:[1,236],106:[1,65],109:85,110:[1,67],111:68,118:[2,146],126:[2,146],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,152],6:[2,152],25:[2,152],26:[2,152],49:[2,152],54:[2,152],57:[2,152],73:[2,152],78:[2,152],86:[2,152],91:[2,152],93:[2,152],102:[2,152],104:[2,152],105:[2,152],106:[2,152],110:[2,152],118:[2,152],126:[2,152],129:[2,152],130:[2,152],133:[2,152],134:[2,152],135:[2,152],136:[2,152],137:[2,152],138:[2,152],139:[2,152]},{1:[2,153],6:[2,153],25:[2,153],26:[2,153],49:[2,153],54:[2,153],57:[2,153],73:[2,153],78:[2,153],86:[2,153],91:[2,153],93:[2,153],102:[2,153],103:84,104:[1,64],105:[2,153],106:[1,65],109:85,110:[1,67],111:68,118:[2,153],126:[2,153],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],49:[2,157],54:[2,157],57:[2,157],73:[2,157],78:[2,157],86:[2,157],91:[2,157],93:[2,157],102:[2,157],104:[2,157],105:[2,157],106:[2,157],110:[2,157],118:[2,157],126:[2,157],129:[2,157],130:[2,157],133:[2,157],134:[2,157],135:[2,157],136:[2,157],137:[2,157],138:[2,157],139:[2,157]},{116:[2,159],117:[2,159]},{27:160,28:[1,72],44:161,58:162,59:163,76:[1,69],89:[1,112],90:[1,113],113:237,115:159},{54:[1,238],116:[2,165],117:[2,165]},{54:[2,161],116:[2,161],117:[2,161]},{54:[2,162],116:[2,162],117:[2,162]},{54:[2,163],116:[2,163],117:[2,163]},{54:[2,164],116:[2,164],117:[2,164]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],49:[2,158],54:[2,158],57:[2,158],73:[2,158],78:[2,158],86:[2,158],91:[2,158],93:[2,158],102:[2,158],104:[2,158],105:[2,158],106:[2,158],110:[2,158],118:[2,158],126:[2,158],129:[2,158],130:[2,158],133:[2,158],134:[2,158],135:[2,158],136:[2,158],137:[2,158],138:[2,158],139:[2,158]},{7:239,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:240,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{6:[2,52],25:[2,52],53:241,54:[1,242],78:[2,52]},{6:[2,92],25:[2,92],26:[2,92],54:[2,92],78:[2,92]},{6:[2,38],25:[2,38],26:[2,38],43:[1,243],54:[2,38],78:[2,38]},{6:[2,41],25:[2,41],26:[2,41],54:[2,41],78:[2,41]},{6:[2,42],25:[2,42],26:[2,42],43:[2,42],54:[2,42],78:[2,42]},{6:[2,43],25:[2,43],26:[2,43],43:[2,43],54:[2,43],78:[2,43]},{6:[2,44],25:[2,44],26:[2,44],43:[2,44],54:[2,44],78:[2,44]},{1:[2,4],6:[2,4],26:[2,4],102:[2,4]},{1:[2,197],6:[2,197],25:[2,197],26:[2,197],49:[2,197],54:[2,197],57:[2,197],73:[2,197],78:[2,197],86:[2,197],91:[2,197],93:[2,197],102:[2,197],103:84,104:[2,197],105:[2,197],106:[2,197],109:85,110:[2,197],111:68,118:[2,197],126:[2,197],129:[2,197],130:[2,197],133:[1,74],134:[1,77],135:[1,78],136:[2,197],137:[2,197],138:[2,197],139:[2,197]},{1:[2,198],6:[2,198],25:[2,198],26:[2,198],49:[2,198],54:[2,198],57:[2,198],73:[2,198],78:[2,198],86:[2,198],91:[2,198],93:[2,198],102:[2,198],103:84,104:[2,198],105:[2,198],106:[2,198],109:85,110:[2,198],111:68,118:[2,198],126:[2,198],129:[2,198],130:[2,198],133:[1,74],134:[1,77],135:[1,78],136:[2,198],137:[2,198],138:[2,198],139:[2,198]},{1:[2,199],6:[2,199],25:[2,199],26:[2,199],49:[2,199],54:[2,199],57:[2,199],73:[2,199],78:[2,199],86:[2,199],91:[2,199],93:[2,199],102:[2,199],103:84,104:[2,199],105:[2,199],106:[2,199],109:85,110:[2,199],111:68,118:[2,199],126:[2,199],129:[2,199],130:[2,199],133:[1,74],134:[2,199],135:[1,78],136:[2,199],137:[2,199],138:[2,199],139:[2,199]},{1:[2,200],6:[2,200],25:[2,200],26:[2,200],49:[2,200],54:[2,200],57:[2,200],73:[2,200],78:[2,200],86:[2,200],91:[2,200],93:[2,200],102:[2,200],103:84,104:[2,200],105:[2,200],106:[2,200],109:85,110:[2,200],111:68,118:[2,200],126:[2,200],129:[2,200],130:[2,200],133:[1,74],134:[2,200],135:[1,78],136:[2,200],137:[2,200],138:[2,200],139:[2,200]},{1:[2,201],6:[2,201],25:[2,201],26:[2,201],49:[2,201],54:[2,201],57:[2,201],73:[2,201],78:[2,201],86:[2,201],91:[2,201],93:[2,201],102:[2,201],103:84,104:[2,201],105:[2,201],106:[2,201],109:85,110:[2,201],111:68,118:[2,201],126:[2,201],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[2,201],137:[2,201],138:[2,201],139:[2,201]},{1:[2,202],6:[2,202],25:[2,202],26:[2,202],49:[2,202],54:[2,202],57:[2,202],73:[2,202],78:[2,202],86:[2,202],91:[2,202],93:[2,202],102:[2,202],103:84,104:[2,202],105:[2,202],106:[2,202],109:85,110:[2,202],111:68,118:[2,202],126:[2,202],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[2,202],138:[2,202],139:[1,82]},{1:[2,203],6:[2,203],25:[2,203],26:[2,203],49:[2,203],54:[2,203],57:[2,203],73:[2,203],78:[2,203],86:[2,203],91:[2,203],93:[2,203],102:[2,203],103:84,104:[2,203],105:[2,203],106:[2,203],109:85,110:[2,203],111:68,118:[2,203],126:[2,203],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[2,203],139:[1,82]},{1:[2,204],6:[2,204],25:[2,204],26:[2,204],49:[2,204],54:[2,204],57:[2,204],73:[2,204],78:[2,204],86:[2,204],91:[2,204],93:[2,204],102:[2,204],103:84,104:[2,204],105:[2,204],106:[2,204],109:85,110:[2,204],111:68,118:[2,204],126:[2,204],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[2,204],138:[2,204],139:[2,204]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],49:[2,187],54:[2,187],57:[2,187],73:[2,187],78:[2,187],86:[2,187],91:[2,187],93:[2,187],102:[2,187],103:84,104:[1,64],105:[2,187],106:[1,65],109:85,110:[1,67],111:68,118:[2,187],126:[2,187],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],49:[2,186],54:[2,186],57:[2,186],73:[2,186],78:[2,186],86:[2,186],91:[2,186],93:[2,186],102:[2,186],103:84,104:[1,64],105:[2,186],106:[1,65],109:85,110:[1,67],111:68,118:[2,186],126:[2,186],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],49:[2,104],54:[2,104],57:[2,104],66:[2,104],67:[2,104],68:[2,104],69:[2,104],71:[2,104],73:[2,104],74:[2,104],78:[2,104],84:[2,104],85:[2,104],86:[2,104],91:[2,104],93:[2,104],102:[2,104],104:[2,104],105:[2,104],106:[2,104],110:[2,104],118:[2,104],126:[2,104],129:[2,104],130:[2,104],133:[2,104],134:[2,104],135:[2,104],136:[2,104],137:[2,104],138:[2,104],139:[2,104]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],40:[2,80],49:[2,80],54:[2,80],57:[2,80],66:[2,80],67:[2,80],68:[2,80],69:[2,80],71:[2,80],73:[2,80],74:[2,80],78:[2,80],80:[2,80],84:[2,80],85:[2,80],86:[2,80],91:[2,80],93:[2,80],102:[2,80],104:[2,80],105:[2,80],106:[2,80],110:[2,80],118:[2,80],126:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80],136:[2,80],137:[2,80],138:[2,80],139:[2,80],140:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],40:[2,81],49:[2,81],54:[2,81],57:[2,81],66:[2,81],67:[2,81],68:[2,81],69:[2,81],71:[2,81],73:[2,81],74:[2,81],78:[2,81],80:[2,81],84:[2,81],85:[2,81],86:[2,81],91:[2,81],93:[2,81],102:[2,81],104:[2,81],105:[2,81],106:[2,81],110:[2,81],118:[2,81],126:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81],136:[2,81],137:[2,81],138:[2,81],139:[2,81],140:[2,81]},{1:[2,82],6:[2,82],25:[2,82],26:[2,82],40:[2,82],49:[2,82],54:[2,82],57:[2,82],66:[2,82],67:[2,82],68:[2,82],69:[2,82],71:[2,82],73:[2,82],74:[2,82],78:[2,82],80:[2,82],84:[2,82],85:[2,82],86:[2,82],91:[2,82],93:[2,82],102:[2,82],104:[2,82],105:[2,82],106:[2,82],110:[2,82],118:[2,82],126:[2,82],129:[2,82],130:[2,82],131:[2,82],132:[2,82],133:[2,82],134:[2,82],135:[2,82],136:[2,82],137:[2,82],138:[2,82],139:[2,82],140:[2,82]},{1:[2,83],6:[2,83],25:[2,83],26:[2,83],40:[2,83],49:[2,83],54:[2,83],57:[2,83],66:[2,83],67:[2,83],68:[2,83],69:[2,83],71:[2,83],73:[2,83],74:[2,83],78:[2,83],80:[2,83],84:[2,83],85:[2,83],86:[2,83],91:[2,83],93:[2,83],102:[2,83],104:[2,83],105:[2,83],106:[2,83],110:[2,83],118:[2,83],126:[2,83],129:[2,83],130:[2,83],131:[2,83],132:[2,83],133:[2,83],134:[2,83],135:[2,83],136:[2,83],137:[2,83],138:[2,83],139:[2,83],140:[2,83]},{73:[1,244]},{57:[1,195],73:[2,88],92:245,93:[1,194],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{73:[2,89]},{7:246,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,73:[2,123],76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{11:[2,117],28:[2,117],30:[2,117],31:[2,117],33:[2,117],34:[2,117],35:[2,117],36:[2,117],37:[2,117],38:[2,117],45:[2,117],46:[2,117],47:[2,117],51:[2,117],52:[2,117],73:[2,117],76:[2,117],79:[2,117],83:[2,117],88:[2,117],89:[2,117],90:[2,117],96:[2,117],100:[2,117],101:[2,117],104:[2,117],106:[2,117],108:[2,117],110:[2,117],119:[2,117],125:[2,117],127:[2,117],128:[2,117],129:[2,117],130:[2,117],131:[2,117],132:[2,117]},{11:[2,118],28:[2,118],30:[2,118],31:[2,118],33:[2,118],34:[2,118],35:[2,118],36:[2,118],37:[2,118],38:[2,118],45:[2,118],46:[2,118],47:[2,118],51:[2,118],52:[2,118],73:[2,118],76:[2,118],79:[2,118],83:[2,118],88:[2,118],89:[2,118],90:[2,118],96:[2,118],100:[2,118],101:[2,118],104:[2,118],106:[2,118],108:[2,118],110:[2,118],119:[2,118],125:[2,118],127:[2,118],128:[2,118],129:[2,118],130:[2,118],131:[2,118],132:[2,118]},{1:[2,87],6:[2,87],25:[2,87],26:[2,87],40:[2,87],49:[2,87],54:[2,87],57:[2,87],66:[2,87],67:[2,87],68:[2,87],69:[2,87],71:[2,87],73:[2,87],74:[2,87],78:[2,87],80:[2,87],84:[2,87],85:[2,87],86:[2,87],91:[2,87],93:[2,87],102:[2,87],104:[2,87],105:[2,87],106:[2,87],110:[2,87],118:[2,87],126:[2,87],129:[2,87],130:[2,87],131:[2,87],132:[2,87],133:[2,87],134:[2,87],135:[2,87],136:[2,87],137:[2,87],138:[2,87],139:[2,87],140:[2,87]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],49:[2,105],54:[2,105],57:[2,105],66:[2,105],67:[2,105],68:[2,105],69:[2,105],71:[2,105],73:[2,105],74:[2,105],78:[2,105],84:[2,105],85:[2,105],86:[2,105],91:[2,105],93:[2,105],102:[2,105],104:[2,105],105:[2,105],106:[2,105],110:[2,105],118:[2,105],126:[2,105],129:[2,105],130:[2,105],133:[2,105],134:[2,105],135:[2,105],136:[2,105],137:[2,105],138:[2,105],139:[2,105]},{1:[2,35],6:[2,35],25:[2,35],26:[2,35],49:[2,35],54:[2,35],57:[2,35],73:[2,35],78:[2,35],86:[2,35],91:[2,35],93:[2,35],102:[2,35],103:84,104:[2,35],105:[2,35],106:[2,35],109:85,110:[2,35],111:68,118:[2,35],126:[2,35],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{7:247,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:248,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],49:[2,110],54:[2,110],57:[2,110],66:[2,110],67:[2,110],68:[2,110],69:[2,110],71:[2,110],73:[2,110],74:[2,110],78:[2,110],84:[2,110],85:[2,110],86:[2,110],91:[2,110],93:[2,110],102:[2,110],104:[2,110],105:[2,110],106:[2,110],110:[2,110],118:[2,110],126:[2,110],129:[2,110],130:[2,110],133:[2,110],134:[2,110],135:[2,110],136:[2,110],137:[2,110],138:[2,110],139:[2,110]},{6:[2,52],25:[2,52],53:249,54:[1,232],86:[2,52]},{6:[2,129],25:[2,129],26:[2,129],54:[2,129],57:[1,250],86:[2,129],91:[2,129],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{50:251,51:[1,59],52:[1,60]},{6:[2,53],25:[2,53],26:[2,53],27:108,28:[1,72],44:109,55:252,56:106,57:[1,107],58:110,59:111,76:[1,69],89:[1,112],90:[1,113]},{6:[1,253],25:[1,254]},{6:[2,60],25:[2,60],26:[2,60],49:[2,60],54:[2,60]},{7:255,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],49:[2,23],54:[2,23],57:[2,23],73:[2,23],78:[2,23],86:[2,23],91:[2,23],93:[2,23],98:[2,23],99:[2,23],102:[2,23],104:[2,23],105:[2,23],106:[2,23],110:[2,23],118:[2,23],121:[2,23],123:[2,23],126:[2,23],129:[2,23],130:[2,23],133:[2,23],134:[2,23],135:[2,23],136:[2,23],137:[2,23],138:[2,23],139:[2,23]},{6:[1,73],26:[1,256]},{1:[2,205],6:[2,205],25:[2,205],26:[2,205],49:[2,205],54:[2,205],57:[2,205],73:[2,205],78:[2,205],86:[2,205],91:[2,205],93:[2,205],102:[2,205],103:84,104:[2,205],105:[2,205],106:[2,205],109:85,110:[2,205],111:68,118:[2,205],126:[2,205],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{7:257,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:258,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,208],6:[2,208],25:[2,208],26:[2,208],49:[2,208],54:[2,208],57:[2,208],73:[2,208],78:[2,208],86:[2,208],91:[2,208],93:[2,208],102:[2,208],103:84,104:[2,208],105:[2,208],106:[2,208],109:85,110:[2,208],111:68,118:[2,208],126:[2,208],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],49:[2,185],54:[2,185],57:[2,185],73:[2,185],78:[2,185],86:[2,185],91:[2,185],93:[2,185],102:[2,185],104:[2,185],105:[2,185],106:[2,185],110:[2,185],118:[2,185],126:[2,185],129:[2,185],130:[2,185],133:[2,185],134:[2,185],135:[2,185],136:[2,185],137:[2,185],138:[2,185],139:[2,185]},{7:259,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],49:[2,135],54:[2,135],57:[2,135],73:[2,135],78:[2,135],86:[2,135],91:[2,135],93:[2,135],98:[1,260],102:[2,135],104:[2,135],105:[2,135],106:[2,135],110:[2,135],118:[2,135],126:[2,135],129:[2,135],130:[2,135],133:[2,135],134:[2,135],135:[2,135],136:[2,135],137:[2,135],138:[2,135],139:[2,135]},{24:261,25:[1,115]},{24:264,25:[1,115],27:262,28:[1,72],59:263,76:[1,69]},{120:265,122:222,123:[1,223]},{26:[1,266],121:[1,267],122:268,123:[1,223]},{26:[2,178],121:[2,178],123:[2,178]},{7:270,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],95:269,96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,98],6:[2,98],24:271,25:[1,115],26:[2,98],49:[2,98],54:[2,98],57:[2,98],73:[2,98],78:[2,98],86:[2,98],91:[2,98],93:[2,98],102:[2,98],103:84,104:[1,64],105:[2,98],106:[1,65],109:85,110:[1,67],111:68,118:[2,98],126:[2,98],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],49:[2,101],54:[2,101],57:[2,101],73:[2,101],78:[2,101],86:[2,101],91:[2,101],93:[2,101],102:[2,101],104:[2,101],105:[2,101],106:[2,101],110:[2,101],118:[2,101],126:[2,101],129:[2,101],130:[2,101],133:[2,101],134:[2,101],135:[2,101],136:[2,101],137:[2,101],138:[2,101],139:[2,101]},{7:272,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],49:[2,142],54:[2,142],57:[2,142],66:[2,142],67:[2,142],68:[2,142],69:[2,142],71:[2,142],73:[2,142],74:[2,142],78:[2,142],84:[2,142],85:[2,142],86:[2,142],91:[2,142],93:[2,142],102:[2,142],104:[2,142],105:[2,142],106:[2,142],110:[2,142],118:[2,142],126:[2,142],129:[2,142],130:[2,142],133:[2,142],134:[2,142],135:[2,142],136:[2,142],137:[2,142],138:[2,142],139:[2,142]},{6:[1,73],26:[1,273]},{7:274,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{6:[2,67],11:[2,118],25:[2,67],28:[2,118],30:[2,118],31:[2,118],33:[2,118],34:[2,118],35:[2,118],36:[2,118],37:[2,118],38:[2,118],45:[2,118],46:[2,118],47:[2,118],51:[2,118],52:[2,118],54:[2,67],76:[2,118],79:[2,118],83:[2,118],88:[2,118],89:[2,118],90:[2,118],91:[2,67],96:[2,118],100:[2,118],101:[2,118],104:[2,118],106:[2,118],108:[2,118],110:[2,118],119:[2,118],125:[2,118],127:[2,118],128:[2,118],129:[2,118],130:[2,118],131:[2,118],132:[2,118]},{6:[1,276],25:[1,277],91:[1,275]},{6:[2,53],7:203,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[2,53],26:[2,53],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],57:[1,149],58:46,59:47,60:148,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],86:[2,53],88:[1,57],89:[1,58],90:[1,56],91:[2,53],94:278,96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{6:[2,52],25:[2,52],26:[2,52],53:279,54:[1,232]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],49:[2,182],54:[2,182],57:[2,182],73:[2,182],78:[2,182],86:[2,182],91:[2,182],93:[2,182],102:[2,182],104:[2,182],105:[2,182],106:[2,182],110:[2,182],118:[2,182],121:[2,182],126:[2,182],129:[2,182],130:[2,182],133:[2,182],134:[2,182],135:[2,182],136:[2,182],137:[2,182],138:[2,182],139:[2,182]},{7:280,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:281,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{116:[2,160],117:[2,160]},{27:160,28:[1,72],44:161,58:162,59:163,76:[1,69],89:[1,112],90:[1,113],115:282},{1:[2,167],6:[2,167],25:[2,167],26:[2,167],49:[2,167],54:[2,167],57:[2,167],73:[2,167],78:[2,167],86:[2,167],91:[2,167],93:[2,167],102:[2,167],103:84,104:[2,167],105:[1,283],106:[2,167],109:85,110:[2,167],111:68,118:[1,284],126:[2,167],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,168],6:[2,168],25:[2,168],26:[2,168],49:[2,168],54:[2,168],57:[2,168],73:[2,168],78:[2,168],86:[2,168],91:[2,168],93:[2,168],102:[2,168],103:84,104:[2,168],105:[1,285],106:[2,168],109:85,110:[2,168],111:68,118:[2,168],126:[2,168],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{6:[1,287],25:[1,288],78:[1,286]},{6:[2,53],10:170,25:[2,53],26:[2,53],27:171,28:[1,72],29:172,30:[1,70],31:[1,71],41:289,42:169,44:173,46:[1,45],78:[2,53],89:[1,112]},{7:290,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,291],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,86],6:[2,86],25:[2,86],26:[2,86],40:[2,86],49:[2,86],54:[2,86],57:[2,86],66:[2,86],67:[2,86],68:[2,86],69:[2,86],71:[2,86],73:[2,86],74:[2,86],78:[2,86],80:[2,86],84:[2,86],85:[2,86],86:[2,86],91:[2,86],93:[2,86],102:[2,86],104:[2,86],105:[2,86],106:[2,86],110:[2,86],118:[2,86],126:[2,86],129:[2,86],130:[2,86],131:[2,86],132:[2,86],133:[2,86],134:[2,86],135:[2,86],136:[2,86],137:[2,86],138:[2,86],139:[2,86],140:[2,86]},{7:292,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,73:[2,121],76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{73:[2,122],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,36],6:[2,36],25:[2,36],26:[2,36],49:[2,36],54:[2,36],57:[2,36],73:[2,36],78:[2,36],86:[2,36],91:[2,36],93:[2,36],102:[2,36],103:84,104:[2,36],105:[2,36],106:[2,36],109:85,110:[2,36],111:68,118:[2,36],126:[2,36],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{26:[1,293],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{6:[1,276],25:[1,277],86:[1,294]},{6:[2,67],25:[2,67],26:[2,67],54:[2,67],86:[2,67],91:[2,67]},{24:295,25:[1,115]},{6:[2,56],25:[2,56],26:[2,56],49:[2,56],54:[2,56]},{27:108,28:[1,72],44:109,55:296,56:106,57:[1,107],58:110,59:111,76:[1,69],89:[1,112],90:[1,113]},{6:[2,54],25:[2,54],26:[2,54],27:108,28:[1,72],44:109,48:297,54:[2,54],55:105,56:106,57:[1,107],58:110,59:111,76:[1,69],89:[1,112],90:[1,113]},{6:[2,61],25:[2,61],26:[2,61],49:[2,61],54:[2,61],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],49:[2,24],54:[2,24],57:[2,24],73:[2,24],78:[2,24],86:[2,24],91:[2,24],93:[2,24],98:[2,24],99:[2,24],102:[2,24],104:[2,24],105:[2,24],106:[2,24],110:[2,24],118:[2,24],121:[2,24],123:[2,24],126:[2,24],129:[2,24],130:[2,24],133:[2,24],134:[2,24],135:[2,24],136:[2,24],137:[2,24],138:[2,24],139:[2,24]},{26:[1,298],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,207],6:[2,207],25:[2,207],26:[2,207],49:[2,207],54:[2,207],57:[2,207],73:[2,207],78:[2,207],86:[2,207],91:[2,207],93:[2,207],102:[2,207],103:84,104:[2,207],105:[2,207],106:[2,207],109:85,110:[2,207],111:68,118:[2,207],126:[2,207],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{24:299,25:[1,115],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{24:300,25:[1,115]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],49:[2,136],54:[2,136],57:[2,136],73:[2,136],78:[2,136],86:[2,136],91:[2,136],93:[2,136],102:[2,136],104:[2,136],105:[2,136],106:[2,136],110:[2,136],118:[2,136],126:[2,136],129:[2,136],130:[2,136],133:[2,136],134:[2,136],135:[2,136],136:[2,136],137:[2,136],138:[2,136],139:[2,136]},{24:301,25:[1,115]},{24:302,25:[1,115]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],49:[2,140],54:[2,140],57:[2,140],73:[2,140],78:[2,140],86:[2,140],91:[2,140],93:[2,140],98:[2,140],102:[2,140],104:[2,140],105:[2,140],106:[2,140],110:[2,140],118:[2,140],126:[2,140],129:[2,140],130:[2,140],133:[2,140],134:[2,140],135:[2,140],136:[2,140],137:[2,140],138:[2,140],139:[2,140]},{26:[1,303],121:[1,304],122:268,123:[1,223]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],49:[2,176],54:[2,176],57:[2,176],73:[2,176],78:[2,176],86:[2,176],91:[2,176],93:[2,176],102:[2,176],104:[2,176],105:[2,176],106:[2,176],110:[2,176],118:[2,176],126:[2,176],129:[2,176],130:[2,176],133:[2,176],134:[2,176],135:[2,176],136:[2,176],137:[2,176],138:[2,176],139:[2,176]},{24:305,25:[1,115]},{26:[2,179],121:[2,179],123:[2,179]},{24:306,25:[1,115],54:[1,307]},{25:[2,132],54:[2,132],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],49:[2,99],54:[2,99],57:[2,99],73:[2,99],78:[2,99],86:[2,99],91:[2,99],93:[2,99],102:[2,99],104:[2,99],105:[2,99],106:[2,99],110:[2,99],118:[2,99],126:[2,99],129:[2,99],130:[2,99],133:[2,99],134:[2,99],135:[2,99],136:[2,99],137:[2,99],138:[2,99],139:[2,99]},{1:[2,102],6:[2,102],24:308,25:[1,115],26:[2,102],49:[2,102],54:[2,102],57:[2,102],73:[2,102],78:[2,102],86:[2,102],91:[2,102],93:[2,102],102:[2,102],103:84,104:[1,64],105:[2,102],106:[1,65],109:85,110:[1,67],111:68,118:[2,102],126:[2,102],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{102:[1,309]},{91:[1,310],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,116],6:[2,116],25:[2,116],26:[2,116],40:[2,116],49:[2,116],54:[2,116],57:[2,116],66:[2,116],67:[2,116],68:[2,116],69:[2,116],71:[2,116],73:[2,116],74:[2,116],78:[2,116],84:[2,116],85:[2,116],86:[2,116],91:[2,116],93:[2,116],102:[2,116],104:[2,116],105:[2,116],106:[2,116],110:[2,116],116:[2,116],117:[2,116],118:[2,116],126:[2,116],129:[2,116],130:[2,116],133:[2,116],134:[2,116],135:[2,116],136:[2,116],137:[2,116],138:[2,116],139:[2,116]},{7:203,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],57:[1,149],58:46,59:47,60:148,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],94:311,96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:203,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,147],27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],57:[1,149],58:46,59:47,60:148,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],87:312,88:[1,57],89:[1,58],90:[1,56],94:146,96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{6:[2,125],25:[2,125],26:[2,125],54:[2,125],86:[2,125],91:[2,125]},{6:[1,276],25:[1,277],26:[1,313]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],49:[2,145],54:[2,145],57:[2,145],73:[2,145],78:[2,145],86:[2,145],91:[2,145],93:[2,145],102:[2,145],103:84,104:[1,64],105:[2,145],106:[1,65],109:85,110:[1,67],111:68,118:[2,145],126:[2,145],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],49:[2,147],54:[2,147],57:[2,147],73:[2,147],78:[2,147],86:[2,147],91:[2,147],93:[2,147],102:[2,147],103:84,104:[1,64],105:[2,147],106:[1,65],109:85,110:[1,67],111:68,118:[2,147],126:[2,147],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{116:[2,166],117:[2,166]},{7:314,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:315,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:316,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,90],6:[2,90],25:[2,90],26:[2,90],40:[2,90],49:[2,90],54:[2,90],57:[2,90],66:[2,90],67:[2,90],68:[2,90],69:[2,90],71:[2,90],73:[2,90],74:[2,90],78:[2,90],84:[2,90],85:[2,90],86:[2,90],91:[2,90],93:[2,90],102:[2,90],104:[2,90],105:[2,90],106:[2,90],110:[2,90],116:[2,90],117:[2,90],118:[2,90],126:[2,90],129:[2,90],130:[2,90],133:[2,90],134:[2,90],135:[2,90],136:[2,90],137:[2,90],138:[2,90],139:[2,90]},{10:170,27:171,28:[1,72],29:172,30:[1,70],31:[1,71],41:317,42:169,44:173,46:[1,45],89:[1,112]},{6:[2,91],10:170,25:[2,91],26:[2,91],27:171,28:[1,72],29:172,30:[1,70],31:[1,71],41:168,42:169,44:173,46:[1,45],54:[2,91],77:318,89:[1,112]},{6:[2,93],25:[2,93],26:[2,93],54:[2,93],78:[2,93]},{6:[2,39],25:[2,39],26:[2,39],54:[2,39],78:[2,39],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{7:319,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{73:[2,120],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,37],6:[2,37],25:[2,37],26:[2,37],49:[2,37],54:[2,37],57:[2,37],73:[2,37],78:[2,37],86:[2,37],91:[2,37],93:[2,37],102:[2,37],104:[2,37],105:[2,37],106:[2,37],110:[2,37],118:[2,37],126:[2,37],129:[2,37],130:[2,37],133:[2,37],134:[2,37],135:[2,37],136:[2,37],137:[2,37],138:[2,37],139:[2,37]},{1:[2,111],6:[2,111],25:[2,111],26:[2,111],49:[2,111],54:[2,111],57:[2,111],66:[2,111],67:[2,111],68:[2,111],69:[2,111],71:[2,111],73:[2,111],74:[2,111],78:[2,111],84:[2,111],85:[2,111],86:[2,111],91:[2,111],93:[2,111],102:[2,111],104:[2,111],105:[2,111],106:[2,111],110:[2,111],118:[2,111],126:[2,111],129:[2,111],130:[2,111],133:[2,111],134:[2,111],135:[2,111],136:[2,111],137:[2,111],138:[2,111],139:[2,111]},{1:[2,48],6:[2,48],25:[2,48],26:[2,48],49:[2,48],54:[2,48],57:[2,48],73:[2,48],78:[2,48],86:[2,48],91:[2,48],93:[2,48],102:[2,48],104:[2,48],105:[2,48],106:[2,48],110:[2,48],118:[2,48],126:[2,48],129:[2,48],130:[2,48],133:[2,48],134:[2,48],135:[2,48],136:[2,48],137:[2,48],138:[2,48],139:[2,48]},{6:[2,57],25:[2,57],26:[2,57],49:[2,57],54:[2,57]},{6:[2,52],25:[2,52],26:[2,52],53:320,54:[1,205]},{1:[2,206],6:[2,206],25:[2,206],26:[2,206],49:[2,206],54:[2,206],57:[2,206],73:[2,206],78:[2,206],86:[2,206],91:[2,206],93:[2,206],102:[2,206],104:[2,206],105:[2,206],106:[2,206],110:[2,206],118:[2,206],126:[2,206],129:[2,206],130:[2,206],133:[2,206],134:[2,206],135:[2,206],136:[2,206],137:[2,206],138:[2,206],139:[2,206]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],49:[2,183],54:[2,183],57:[2,183],73:[2,183],78:[2,183],86:[2,183],91:[2,183],93:[2,183],102:[2,183],104:[2,183],105:[2,183],106:[2,183],110:[2,183],118:[2,183],121:[2,183],126:[2,183],129:[2,183],130:[2,183],133:[2,183],134:[2,183],135:[2,183],136:[2,183],137:[2,183],138:[2,183],139:[2,183]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],49:[2,137],54:[2,137],57:[2,137],73:[2,137],78:[2,137],86:[2,137],91:[2,137],93:[2,137],102:[2,137],104:[2,137],105:[2,137],106:[2,137],110:[2,137],118:[2,137],126:[2,137],129:[2,137],130:[2,137],133:[2,137],134:[2,137],135:[2,137],136:[2,137],137:[2,137],138:[2,137],139:[2,137]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],49:[2,138],54:[2,138],57:[2,138],73:[2,138],78:[2,138],86:[2,138],91:[2,138],93:[2,138],98:[2,138],102:[2,138],104:[2,138],105:[2,138],106:[2,138],110:[2,138],118:[2,138],126:[2,138],129:[2,138],130:[2,138],133:[2,138],134:[2,138],135:[2,138],136:[2,138],137:[2,138],138:[2,138],139:[2,138]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],49:[2,139],54:[2,139],57:[2,139],73:[2,139],78:[2,139],86:[2,139],91:[2,139],93:[2,139],98:[2,139],102:[2,139],104:[2,139],105:[2,139],106:[2,139],110:[2,139],118:[2,139],126:[2,139],129:[2,139],130:[2,139],133:[2,139],134:[2,139],135:[2,139],136:[2,139],137:[2,139],138:[2,139],139:[2,139]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],49:[2,174],54:[2,174],57:[2,174],73:[2,174],78:[2,174],86:[2,174],91:[2,174],93:[2,174],102:[2,174],104:[2,174],105:[2,174],106:[2,174],110:[2,174],118:[2,174],126:[2,174],129:[2,174],130:[2,174],133:[2,174],134:[2,174],135:[2,174],136:[2,174],137:[2,174],138:[2,174],139:[2,174]},{24:321,25:[1,115]},{26:[1,322]},{6:[1,323],26:[2,180],121:[2,180],123:[2,180]},{7:324,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{1:[2,103],6:[2,103],25:[2,103],26:[2,103],49:[2,103],54:[2,103],57:[2,103],73:[2,103],78:[2,103],86:[2,103],91:[2,103],93:[2,103],102:[2,103],104:[2,103],105:[2,103],106:[2,103],110:[2,103],118:[2,103],126:[2,103],129:[2,103],130:[2,103],133:[2,103],134:[2,103],135:[2,103],136:[2,103],137:[2,103],138:[2,103],139:[2,103]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],49:[2,143],54:[2,143],57:[2,143],66:[2,143],67:[2,143],68:[2,143],69:[2,143],71:[2,143],73:[2,143],74:[2,143],78:[2,143],84:[2,143],85:[2,143],86:[2,143],91:[2,143],93:[2,143],102:[2,143],104:[2,143],105:[2,143],106:[2,143],110:[2,143],118:[2,143],126:[2,143],129:[2,143],130:[2,143],133:[2,143],134:[2,143],135:[2,143],136:[2,143],137:[2,143],138:[2,143],139:[2,143]},{1:[2,119],6:[2,119],25:[2,119],26:[2,119],49:[2,119],54:[2,119],57:[2,119],66:[2,119],67:[2,119],68:[2,119],69:[2,119],71:[2,119],73:[2,119],74:[2,119],78:[2,119],84:[2,119],85:[2,119],86:[2,119],91:[2,119],93:[2,119],102:[2,119],104:[2,119],105:[2,119],106:[2,119],110:[2,119],118:[2,119],126:[2,119],129:[2,119],130:[2,119],133:[2,119],134:[2,119],135:[2,119],136:[2,119],137:[2,119],138:[2,119],139:[2,119]},{6:[2,126],25:[2,126],26:[2,126],54:[2,126],86:[2,126],91:[2,126]},{6:[2,52],25:[2,52],26:[2,52],53:325,54:[1,232]},{6:[2,127],25:[2,127],26:[2,127],54:[2,127],86:[2,127],91:[2,127]},{1:[2,169],6:[2,169],25:[2,169],26:[2,169],49:[2,169],54:[2,169],57:[2,169],73:[2,169],78:[2,169],86:[2,169],91:[2,169],93:[2,169],102:[2,169],103:84,104:[2,169],105:[2,169],106:[2,169],109:85,110:[2,169],111:68,118:[1,326],126:[2,169],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],49:[2,171],54:[2,171],57:[2,171],73:[2,171],78:[2,171],86:[2,171],91:[2,171],93:[2,171],102:[2,171],103:84,104:[2,171],105:[1,327],106:[2,171],109:85,110:[2,171],111:68,118:[2,171],126:[2,171],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,170],6:[2,170],25:[2,170],26:[2,170],49:[2,170],54:[2,170],57:[2,170],73:[2,170],78:[2,170],86:[2,170],91:[2,170],93:[2,170],102:[2,170],103:84,104:[2,170],105:[2,170],106:[2,170],109:85,110:[2,170],111:68,118:[2,170],126:[2,170],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{6:[2,94],25:[2,94],26:[2,94],54:[2,94],78:[2,94]},{6:[2,52],25:[2,52],26:[2,52],53:328,54:[1,242]},{26:[1,329],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{6:[1,253],25:[1,254],26:[1,330]},{26:[1,331]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],49:[2,177],54:[2,177],57:[2,177],73:[2,177],78:[2,177],86:[2,177],91:[2,177],93:[2,177],102:[2,177],104:[2,177],105:[2,177],106:[2,177],110:[2,177],118:[2,177],126:[2,177],129:[2,177],130:[2,177],133:[2,177],134:[2,177],135:[2,177],136:[2,177],137:[2,177],138:[2,177],139:[2,177]},{26:[2,181],121:[2,181],123:[2,181]},{25:[2,133],54:[2,133],103:84,104:[1,64],106:[1,65],109:85,110:[1,67],111:68,126:[1,83],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{6:[1,276],25:[1,277],26:[1,332]},{7:333,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{7:334,8:117,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:61,28:[1,72],29:48,30:[1,70],31:[1,71],32:22,33:[1,49],34:[1,50],35:[1,51],36:[1,52],37:[1,53],38:[1,54],39:21,44:62,45:[1,44],46:[1,45],47:[1,27],50:28,51:[1,59],52:[1,60],58:46,59:47,61:35,63:23,64:24,65:25,76:[1,69],79:[1,42],83:[1,26],88:[1,57],89:[1,58],90:[1,56],96:[1,37],100:[1,43],101:[1,55],103:38,104:[1,64],106:[1,65],107:39,108:[1,66],109:40,110:[1,67],111:68,119:[1,41],124:36,125:[1,63],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,34]},{6:[1,287],25:[1,288],26:[1,335]},{6:[2,40],25:[2,40],26:[2,40],54:[2,40],78:[2,40]},{6:[2,58],25:[2,58],26:[2,58],49:[2,58],54:[2,58]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],49:[2,175],54:[2,175],57:[2,175],73:[2,175],78:[2,175],86:[2,175],91:[2,175],93:[2,175],102:[2,175],104:[2,175],105:[2,175],106:[2,175],110:[2,175],118:[2,175],126:[2,175],129:[2,175],130:[2,175],133:[2,175],134:[2,175],135:[2,175],136:[2,175],137:[2,175],138:[2,175],139:[2,175]},{6:[2,128],25:[2,128],26:[2,128],54:[2,128],86:[2,128],91:[2,128]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],49:[2,172],54:[2,172],57:[2,172],73:[2,172],78:[2,172],86:[2,172],91:[2,172],93:[2,172],102:[2,172],103:84,104:[2,172],105:[2,172],106:[2,172],109:85,110:[2,172],111:68,118:[2,172],126:[2,172],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],49:[2,173],54:[2,173],57:[2,173],73:[2,173],78:[2,173],86:[2,173],91:[2,173],93:[2,173],102:[2,173],103:84,104:[2,173],105:[2,173],106:[2,173],109:85,110:[2,173],111:68,118:[2,173],126:[2,173],129:[1,76],130:[1,75],133:[1,74],134:[1,77],135:[1,78],136:[1,79],137:[1,80],138:[1,81],139:[1,82]},{6:[2,95],25:[2,95],26:[2,95],54:[2,95],78:[2,95]}],
-defaultActions: {59:[2,50],60:[2,51],91:[2,109],192:[2,89]},
-parseError: function parseError(str, hash) {
-    if (hash.recoverable) {
-        this.trace(str);
-    } else {
-        throw new Error(str);
-    }
-},
-parse: function parse(input) {
-    var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
-    var args = lstack.slice.call(arguments, 1);
-    this.lexer.setInput(input);
-    this.lexer.yy = this.yy;
-    this.yy.lexer = this.lexer;
-    this.yy.parser = this;
-    if (typeof this.lexer.yylloc == 'undefined') {
-        this.lexer.yylloc = {};
-    }
-    var yyloc = this.lexer.yylloc;
-    lstack.push(yyloc);
-    var ranges = this.lexer.options && this.lexer.options.ranges;
-    if (typeof this.yy.parseError === 'function') {
-        this.parseError = this.yy.parseError;
-    } else {
-        this.parseError = Object.getPrototypeOf(this).parseError;
-    }
-    function popStack(n) {
-        stack.length = stack.length - 2 * n;
-        vstack.length = vstack.length - n;
-        lstack.length = lstack.length - n;
-    }
-    function lex() {
-        var token;
-        token = self.lexer.lex() || EOF;
-        if (typeof token !== 'number') {
-            token = self.symbols_[token] || token;
-        }
-        return token;
-    }
-    var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
-    while (true) {
-        state = stack[stack.length - 1];
-        if (this.defaultActions[state]) {
-            action = this.defaultActions[state];
-        } else {
-            if (symbol === null || typeof symbol == 'undefined') {
-                symbol = lex();
-            }
-            action = table[state] && table[state][symbol];
-        }
-                    if (typeof action === 'undefined' || !action.length || !action[0]) {
-                var errStr = '';
-                expected = [];
-                for (p in table[state]) {
-                    if (this.terminals_[p] && p > TERROR) {
-                        expected.push('\'' + this.terminals_[p] + '\'');
-                    }
-                }
-                if (this.lexer.showPosition) {
-                    errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + this.lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
-                } else {
-                    errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
-                }
-                this.parseError(errStr, {
-                    text: this.lexer.match,
-                    token: this.terminals_[symbol] || symbol,
-                    line: this.lexer.yylineno,
-                    loc: yyloc,
-                    expected: expected
-                });
-            }
-        if (action[0] instanceof Array && action.length > 1) {
-            throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
-        }
-        switch (action[0]) {
-        case 1:
-            stack.push(symbol);
-            vstack.push(this.lexer.yytext);
-            lstack.push(this.lexer.yylloc);
-            stack.push(action[1]);
-            symbol = null;
-            if (!preErrorSymbol) {
-                yyleng = this.lexer.yyleng;
-                yytext = this.lexer.yytext;
-                yylineno = this.lexer.yylineno;
-                yyloc = this.lexer.yylloc;
-                if (recovering > 0) {
-                    recovering--;
-                }
-            } else {
-                symbol = preErrorSymbol;
-                preErrorSymbol = null;
-            }
-            break;
-        case 2:
-            len = this.productions_[action[1]][1];
-            yyval.$ = vstack[vstack.length - len];
-            yyval._$ = {
-                first_line: lstack[lstack.length - (len || 1)].first_line,
-                last_line: lstack[lstack.length - 1].last_line,
-                first_column: lstack[lstack.length - (len || 1)].first_column,
-                last_column: lstack[lstack.length - 1].last_column
-            };
-            if (ranges) {
-                yyval._$.range = [
-                    lstack[lstack.length - (len || 1)].range[0],
-                    lstack[lstack.length - 1].range[1]
-                ];
-            }
-            r = this.performAction.apply(yyval, [
-                yytext,
-                yyleng,
-                yylineno,
-                this.yy,
-                action[1],
-                vstack,
-                lstack
-            ].concat(args));
-            if (typeof r !== 'undefined') {
-                return r;
-            }
-            if (len) {
-                stack = stack.slice(0, -1 * len * 2);
-                vstack = vstack.slice(0, -1 * len);
-                lstack = lstack.slice(0, -1 * len);
-            }
-            stack.push(this.productions_[action[1]][0]);
-            vstack.push(yyval.$);
-            lstack.push(yyval._$);
-            newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
-            stack.push(newState);
-            break;
-        case 3:
-            return true;
-        }
-    }
-    return true;
-}};
-
-function Parser () {
-  this.yy = {};
-}
-Parser.prototype = parser;parser.Parser = Parser;
-return new Parser;
-})();
-
-
-if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
-exports.parser = parser;
-exports.Parser = parser.Parser;
-exports.parse = function () { return parser.parse.apply(parser, arguments); };
-exports.main = function commonjsMain(args) {
-    if (!args[1]) {
-        console.log('Usage: '+args[0]+' FILE');
-        process.exit(1);
-    }
-    var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8");
-    return exports.parser.parse(source);
-};
-if (typeof module !== 'undefined' && require.main === module) {
-  exports.main(process.argv.slice(1));
-}
-}
\ No newline at end of file
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/register.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/register.js
deleted file mode 100644 (file)
index b1d75ca..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(function() {
-  var CoffeeScript, Module, binary, child_process, ext, findExtension, fork, helpers, loadFile, path, _i, _len, _ref;
-
-  CoffeeScript = require('./coffee-script');
-
-  child_process = require('child_process');
-
-  helpers = require('./helpers');
-
-  path = require('path');
-
-  loadFile = function(module, filename) {
-    var answer;
-    answer = CoffeeScript._compileFile(filename, false);
-    return module._compile(answer, filename);
-  };
-
-  if (require.extensions) {
-    _ref = CoffeeScript.FILE_EXTENSIONS;
-    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-      ext = _ref[_i];
-      require.extensions[ext] = loadFile;
-    }
-    Module = require('module');
-    findExtension = function(filename) {
-      var curExtension, extensions;
-      extensions = path.basename(filename).split('.');
-      if (extensions[0] === '') {
-        extensions.shift();
-      }
-      while (extensions.shift()) {
-        curExtension = '.' + extensions.join('.');
-        if (Module._extensions[curExtension]) {
-          return curExtension;
-        }
-      }
-      return '.js';
-    };
-    Module.prototype.load = function(filename) {
-      var extension;
-      this.filename = filename;
-      this.paths = Module._nodeModulePaths(path.dirname(filename));
-      extension = findExtension(filename);
-      Module._extensions[extension](this, filename);
-      return this.loaded = true;
-    };
-  }
-
-  if (child_process) {
-    fork = child_process.fork;
-    binary = require.resolve('../../bin/coffee');
-    child_process.fork = function(path, args, options) {
-      if (helpers.isCoffee(path)) {
-        if (!Array.isArray(args)) {
-          options = args || {};
-          args = [];
-        }
-        args = [path].concat(args);
-        path = binary;
-      }
-      return fork(path, args, options);
-    };
-  }
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/repl.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/repl.js
deleted file mode 100644 (file)
index 9f06977..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(function() {
-  var CoffeeScript, addHistory, addMultilineHandler, fs, getCommandId, merge, nodeREPL, path, replDefaults, updateSyntaxError, vm, _ref;
-
-  fs = require('fs');
-
-  path = require('path');
-
-  vm = require('vm');
-
-  nodeREPL = require('repl');
-
-  CoffeeScript = require('./coffee-script');
-
-  _ref = require('./helpers'), merge = _ref.merge, updateSyntaxError = _ref.updateSyntaxError;
-
-  replDefaults = {
-    prompt: 'coffee> ',
-    historyFile: process.env.HOME ? path.join(process.env.HOME, '.coffee_history') : void 0,
-    historyMaxInputSize: 10240,
-    "eval": function(input, context, filename, cb) {
-      var Assign, Block, Literal, Value, ast, err, js, result, _ref1;
-      input = input.replace(/\uFF00/g, '\n');
-      input = input.replace(/^\(([\s\S]*)\n\)$/m, '$1');
-      _ref1 = require('./nodes'), Block = _ref1.Block, Assign = _ref1.Assign, Value = _ref1.Value, Literal = _ref1.Literal;
-      try {
-        ast = CoffeeScript.nodes(input);
-        ast = new Block([new Assign(new Value(new Literal('_')), ast, '=')]);
-        js = ast.compile({
-          bare: true,
-          locals: Object.keys(context)
-        });
-        result = context === global ? vm.runInThisContext(js, filename) : vm.runInContext(js, context, filename);
-        return cb(null, result);
-      } catch (_error) {
-        err = _error;
-        updateSyntaxError(err, input);
-        return cb(err);
-      }
-    }
-  };
-
-  addMultilineHandler = function(repl) {
-    var inputStream, multiline, nodeLineListener, origPrompt, outputStream, rli, _ref1;
-    rli = repl.rli, inputStream = repl.inputStream, outputStream = repl.outputStream;
-    origPrompt = (_ref1 = repl._prompt) != null ? _ref1 : repl.prompt;
-    multiline = {
-      enabled: false,
-      initialPrompt: origPrompt.replace(/^[^> ]*/, function(x) {
-        return x.replace(/./g, '-');
-      }),
-      prompt: origPrompt.replace(/^[^> ]*>?/, function(x) {
-        return x.replace(/./g, '.');
-      }),
-      buffer: ''
-    };
-    nodeLineListener = rli.listeners('line')[0];
-    rli.removeListener('line', nodeLineListener);
-    rli.on('line', function(cmd) {
-      if (multiline.enabled) {
-        multiline.buffer += "" + cmd + "\n";
-        rli.setPrompt(multiline.prompt);
-        rli.prompt(true);
-      } else {
-        rli.setPrompt(origPrompt);
-        nodeLineListener(cmd);
-      }
-    });
-    return inputStream.on('keypress', function(char, key) {
-      if (!(key && key.ctrl && !key.meta && !key.shift && key.name === 'v')) {
-        return;
-      }
-      if (multiline.enabled) {
-        if (!multiline.buffer.match(/\n/)) {
-          multiline.enabled = !multiline.enabled;
-          rli.setPrompt(origPrompt);
-          rli.prompt(true);
-          return;
-        }
-        if ((rli.line != null) && !rli.line.match(/^\s*$/)) {
-          return;
-        }
-        multiline.enabled = !multiline.enabled;
-        rli.line = '';
-        rli.cursor = 0;
-        rli.output.cursorTo(0);
-        rli.output.clearLine(1);
-        multiline.buffer = multiline.buffer.replace(/\n/g, '\uFF00');
-        rli.emit('line', multiline.buffer);
-        multiline.buffer = '';
-      } else {
-        multiline.enabled = !multiline.enabled;
-        rli.setPrompt(multiline.initialPrompt);
-        rli.prompt(true);
-      }
-    });
-  };
-
-  addHistory = function(repl, filename, maxSize) {
-    var buffer, fd, lastLine, readFd, size, stat;
-    lastLine = null;
-    try {
-      stat = fs.statSync(filename);
-      size = Math.min(maxSize, stat.size);
-      readFd = fs.openSync(filename, 'r');
-      buffer = new Buffer(size);
-      fs.readSync(readFd, buffer, 0, size, stat.size - size);
-      repl.rli.history = buffer.toString().split('\n').reverse();
-      if (stat.size > maxSize) {
-        repl.rli.history.pop();
-      }
-      if (repl.rli.history[0] === '') {
-        repl.rli.history.shift();
-      }
-      repl.rli.historyIndex = -1;
-      lastLine = repl.rli.history[0];
-    } catch (_error) {}
-    fd = fs.openSync(filename, 'a');
-    repl.rli.addListener('line', function(code) {
-      if (code && code.length && code !== '.history' && lastLine !== code) {
-        fs.write(fd, "" + code + "\n");
-        return lastLine = code;
-      }
-    });
-    repl.rli.on('exit', function() {
-      return fs.close(fd);
-    });
-    return repl.commands[getCommandId(repl, 'history')] = {
-      help: 'Show command history',
-      action: function() {
-        repl.outputStream.write("" + (repl.rli.history.slice(0).reverse().join('\n')) + "\n");
-        return repl.displayPrompt();
-      }
-    };
-  };
-
-  getCommandId = function(repl, commandName) {
-    var commandsHaveLeadingDot;
-    commandsHaveLeadingDot = repl.commands['.help'] != null;
-    if (commandsHaveLeadingDot) {
-      return "." + commandName;
-    } else {
-      return commandName;
-    }
-  };
-
-  module.exports = {
-    start: function(opts) {
-      var build, major, minor, repl, _ref1;
-      if (opts == null) {
-        opts = {};
-      }
-      _ref1 = process.versions.node.split('.').map(function(n) {
-        return parseInt(n);
-      }), major = _ref1[0], minor = _ref1[1], build = _ref1[2];
-      if (major === 0 && minor < 8) {
-        console.warn("Node 0.8.0+ required for CoffeeScript REPL");
-        process.exit(1);
-      }
-      CoffeeScript.register();
-      process.argv = ['coffee'].concat(process.argv.slice(2));
-      opts = merge(replDefaults, opts);
-      repl = nodeREPL.start(opts);
-      repl.on('exit', function() {
-        return repl.outputStream.write('\n');
-      });
-      addMultilineHandler(repl);
-      if (opts.historyFile) {
-        addHistory(repl, opts.historyFile, opts.historyMaxInputSize);
-      }
-      repl.commands[getCommandId(repl, 'load')].help = 'Load code from a file into this REPL session';
-      return repl;
-    }
-  };
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/rewriter.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/rewriter.js
deleted file mode 100644 (file)
index c5f228a..0000000
+++ /dev/null
@@ -1,475 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(function() {
-  var BALANCED_PAIRS, CALL_CLOSERS, EXPRESSION_CLOSE, EXPRESSION_END, EXPRESSION_START, IMPLICIT_CALL, IMPLICIT_END, IMPLICIT_FUNC, IMPLICIT_UNSPACED_CALL, INVERSES, LINEBREAKS, SINGLE_CLOSERS, SINGLE_LINERS, generate, left, rite, _i, _len, _ref,
-    __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
-    __slice = [].slice;
-
-  generate = function(tag, value, origin) {
-    var tok;
-    tok = [tag, value];
-    tok.generated = true;
-    if (origin) {
-      tok.origin = origin;
-    }
-    return tok;
-  };
-
-  exports.Rewriter = (function() {
-    function Rewriter() {}
-
-    Rewriter.prototype.rewrite = function(tokens) {
-      this.tokens = tokens;
-      this.removeLeadingNewlines();
-      this.closeOpenCalls();
-      this.closeOpenIndexes();
-      this.normalizeLines();
-      this.tagPostfixConditionals();
-      this.addImplicitBracesAndParens();
-      this.addLocationDataToGeneratedTokens();
-      return this.tokens;
-    };
-
-    Rewriter.prototype.scanTokens = function(block) {
-      var i, token, tokens;
-      tokens = this.tokens;
-      i = 0;
-      while (token = tokens[i]) {
-        i += block.call(this, token, i, tokens);
-      }
-      return true;
-    };
-
-    Rewriter.prototype.detectEnd = function(i, condition, action) {
-      var levels, token, tokens, _ref, _ref1;
-      tokens = this.tokens;
-      levels = 0;
-      while (token = tokens[i]) {
-        if (levels === 0 && condition.call(this, token, i)) {
-          return action.call(this, token, i);
-        }
-        if (!token || levels < 0) {
-          return action.call(this, token, i - 1);
-        }
-        if (_ref = token[0], __indexOf.call(EXPRESSION_START, _ref) >= 0) {
-          levels += 1;
-        } else if (_ref1 = token[0], __indexOf.call(EXPRESSION_END, _ref1) >= 0) {
-          levels -= 1;
-        }
-        i += 1;
-      }
-      return i - 1;
-    };
-
-    Rewriter.prototype.removeLeadingNewlines = function() {
-      var i, tag, _i, _len, _ref;
-      _ref = this.tokens;
-      for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
-        tag = _ref[i][0];
-        if (tag !== 'TERMINATOR') {
-          break;
-        }
-      }
-      if (i) {
-        return this.tokens.splice(0, i);
-      }
-    };
-
-    Rewriter.prototype.closeOpenCalls = function() {
-      var action, condition;
-      condition = function(token, i) {
-        var _ref;
-        return ((_ref = token[0]) === ')' || _ref === 'CALL_END') || token[0] === 'OUTDENT' && this.tag(i - 1) === ')';
-      };
-      action = function(token, i) {
-        return this.tokens[token[0] === 'OUTDENT' ? i - 1 : i][0] = 'CALL_END';
-      };
-      return this.scanTokens(function(token, i) {
-        if (token[0] === 'CALL_START') {
-          this.detectEnd(i + 1, condition, action);
-        }
-        return 1;
-      });
-    };
-
-    Rewriter.prototype.closeOpenIndexes = function() {
-      var action, condition;
-      condition = function(token, i) {
-        var _ref;
-        return (_ref = token[0]) === ']' || _ref === 'INDEX_END';
-      };
-      action = function(token, i) {
-        return token[0] = 'INDEX_END';
-      };
-      return this.scanTokens(function(token, i) {
-        if (token[0] === 'INDEX_START') {
-          this.detectEnd(i + 1, condition, action);
-        }
-        return 1;
-      });
-    };
-
-    Rewriter.prototype.matchTags = function() {
-      var fuzz, i, j, pattern, _i, _ref, _ref1;
-      i = arguments[0], pattern = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
-      fuzz = 0;
-      for (j = _i = 0, _ref = pattern.length; 0 <= _ref ? _i < _ref : _i > _ref; j = 0 <= _ref ? ++_i : --_i) {
-        while (this.tag(i + j + fuzz) === 'HERECOMMENT') {
-          fuzz += 2;
-        }
-        if (pattern[j] == null) {
-          continue;
-        }
-        if (typeof pattern[j] === 'string') {
-          pattern[j] = [pattern[j]];
-        }
-        if (_ref1 = this.tag(i + j + fuzz), __indexOf.call(pattern[j], _ref1) < 0) {
-          return false;
-        }
-      }
-      return true;
-    };
-
-    Rewriter.prototype.looksObjectish = function(j) {
-      return this.matchTags(j, '@', null, ':') || this.matchTags(j, null, ':');
-    };
-
-    Rewriter.prototype.findTagsBackwards = function(i, tags) {
-      var backStack, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;
-      backStack = [];
-      while (i >= 0 && (backStack.length || (_ref2 = this.tag(i), __indexOf.call(tags, _ref2) < 0) && ((_ref3 = this.tag(i), __indexOf.call(EXPRESSION_START, _ref3) < 0) || this.tokens[i].generated) && (_ref4 = this.tag(i), __indexOf.call(LINEBREAKS, _ref4) < 0))) {
-        if (_ref = this.tag(i), __indexOf.call(EXPRESSION_END, _ref) >= 0) {
-          backStack.push(this.tag(i));
-        }
-        if ((_ref1 = this.tag(i), __indexOf.call(EXPRESSION_START, _ref1) >= 0) && backStack.length) {
-          backStack.pop();
-        }
-        i -= 1;
-      }
-      return _ref5 = this.tag(i), __indexOf.call(tags, _ref5) >= 0;
-    };
-
-    Rewriter.prototype.addImplicitBracesAndParens = function() {
-      var stack;
-      stack = [];
-      return this.scanTokens(function(token, i, tokens) {
-        var endImplicitCall, endImplicitObject, forward, inImplicit, inImplicitCall, inImplicitControl, inImplicitObject, newLine, nextTag, offset, prevTag, prevToken, s, sameLine, stackIdx, stackTag, stackTop, startIdx, startImplicitCall, startImplicitObject, startsLine, tag, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;
-        tag = token[0];
-        prevTag = (prevToken = i > 0 ? tokens[i - 1] : [])[0];
-        nextTag = (i < tokens.length - 1 ? tokens[i + 1] : [])[0];
-        stackTop = function() {
-          return stack[stack.length - 1];
-        };
-        startIdx = i;
-        forward = function(n) {
-          return i - startIdx + n;
-        };
-        inImplicit = function() {
-          var _ref, _ref1;
-          return (_ref = stackTop()) != null ? (_ref1 = _ref[2]) != null ? _ref1.ours : void 0 : void 0;
-        };
-        inImplicitCall = function() {
-          var _ref;
-          return inImplicit() && ((_ref = stackTop()) != null ? _ref[0] : void 0) === '(';
-        };
-        inImplicitObject = function() {
-          var _ref;
-          return inImplicit() && ((_ref = stackTop()) != null ? _ref[0] : void 0) === '{';
-        };
-        inImplicitControl = function() {
-          var _ref;
-          return inImplicit && ((_ref = stackTop()) != null ? _ref[0] : void 0) === 'CONTROL';
-        };
-        startImplicitCall = function(j) {
-          var idx;
-          idx = j != null ? j : i;
-          stack.push([
-            '(', idx, {
-              ours: true
-            }
-          ]);
-          tokens.splice(idx, 0, generate('CALL_START', '('));
-          if (j == null) {
-            return i += 1;
-          }
-        };
-        endImplicitCall = function() {
-          stack.pop();
-          tokens.splice(i, 0, generate('CALL_END', ')'));
-          return i += 1;
-        };
-        startImplicitObject = function(j, startsLine) {
-          var idx;
-          if (startsLine == null) {
-            startsLine = true;
-          }
-          idx = j != null ? j : i;
-          stack.push([
-            '{', idx, {
-              sameLine: true,
-              startsLine: startsLine,
-              ours: true
-            }
-          ]);
-          tokens.splice(idx, 0, generate('{', generate(new String('{')), token));
-          if (j == null) {
-            return i += 1;
-          }
-        };
-        endImplicitObject = function(j) {
-          j = j != null ? j : i;
-          stack.pop();
-          tokens.splice(j, 0, generate('}', '}', token));
-          return i += 1;
-        };
-        if (inImplicitCall() && (tag === 'IF' || tag === 'TRY' || tag === 'FINALLY' || tag === 'CATCH' || tag === 'CLASS' || tag === 'SWITCH')) {
-          stack.push([
-            'CONTROL', i, {
-              ours: true
-            }
-          ]);
-          return forward(1);
-        }
-        if (tag === 'INDENT' && inImplicit()) {
-          if (prevTag !== '=>' && prevTag !== '->' && prevTag !== '[' && prevTag !== '(' && prevTag !== ',' && prevTag !== '{' && prevTag !== 'TRY' && prevTag !== 'ELSE' && prevTag !== '=') {
-            while (inImplicitCall()) {
-              endImplicitCall();
-            }
-          }
-          if (inImplicitControl()) {
-            stack.pop();
-          }
-          stack.push([tag, i]);
-          return forward(1);
-        }
-        if (__indexOf.call(EXPRESSION_START, tag) >= 0) {
-          stack.push([tag, i]);
-          return forward(1);
-        }
-        if (__indexOf.call(EXPRESSION_END, tag) >= 0) {
-          while (inImplicit()) {
-            if (inImplicitCall()) {
-              endImplicitCall();
-            } else if (inImplicitObject()) {
-              endImplicitObject();
-            } else {
-              stack.pop();
-            }
-          }
-          stack.pop();
-        }
-        if ((__indexOf.call(IMPLICIT_FUNC, tag) >= 0 && token.spaced && !token.stringEnd || tag === '?' && i > 0 && !tokens[i - 1].spaced) && (__indexOf.call(IMPLICIT_CALL, nextTag) >= 0 || __indexOf.call(IMPLICIT_UNSPACED_CALL, nextTag) >= 0 && !((_ref = tokens[i + 1]) != null ? _ref.spaced : void 0) && !((_ref1 = tokens[i + 1]) != null ? _ref1.newLine : void 0))) {
-          if (tag === '?') {
-            tag = token[0] = 'FUNC_EXIST';
-          }
-          startImplicitCall(i + 1);
-          return forward(2);
-        }
-        if (__indexOf.call(IMPLICIT_FUNC, tag) >= 0 && this.matchTags(i + 1, 'INDENT', null, ':') && !this.findTagsBackwards(i, ['CLASS', 'EXTENDS', 'IF', 'CATCH', 'SWITCH', 'LEADING_WHEN', 'FOR', 'WHILE', 'UNTIL'])) {
-          startImplicitCall(i + 1);
-          stack.push(['INDENT', i + 2]);
-          return forward(3);
-        }
-        if (tag === ':') {
-          if (this.tag(i - 2) === '@') {
-            s = i - 2;
-          } else {
-            s = i - 1;
-          }
-          while (this.tag(s - 2) === 'HERECOMMENT') {
-            s -= 2;
-          }
-          this.insideForDeclaration = nextTag === 'FOR';
-          startsLine = s === 0 || (_ref2 = this.tag(s - 1), __indexOf.call(LINEBREAKS, _ref2) >= 0) || tokens[s - 1].newLine;
-          if (stackTop()) {
-            _ref3 = stackTop(), stackTag = _ref3[0], stackIdx = _ref3[1];
-            if ((stackTag === '{' || stackTag === 'INDENT' && this.tag(stackIdx - 1) === '{') && (startsLine || this.tag(s - 1) === ',' || this.tag(s - 1) === '{')) {
-              return forward(1);
-            }
-          }
-          startImplicitObject(s, !!startsLine);
-          return forward(2);
-        }
-        if (inImplicitObject() && __indexOf.call(LINEBREAKS, tag) >= 0) {
-          stackTop()[2].sameLine = false;
-        }
-        newLine = prevTag === 'OUTDENT' || prevToken.newLine;
-        if (__indexOf.call(IMPLICIT_END, tag) >= 0 || __indexOf.call(CALL_CLOSERS, tag) >= 0 && newLine) {
-          while (inImplicit()) {
-            _ref4 = stackTop(), stackTag = _ref4[0], stackIdx = _ref4[1], (_ref5 = _ref4[2], sameLine = _ref5.sameLine, startsLine = _ref5.startsLine);
-            if (inImplicitCall() && prevTag !== ',') {
-              endImplicitCall();
-            } else if (inImplicitObject() && !this.insideForDeclaration && sameLine && tag !== 'TERMINATOR' && prevTag !== ':' && endImplicitObject()) {
-
-            } else if (inImplicitObject() && tag === 'TERMINATOR' && prevTag !== ',' && !(startsLine && this.looksObjectish(i + 1))) {
-              endImplicitObject();
-            } else {
-              break;
-            }
-          }
-        }
-        if (tag === ',' && !this.looksObjectish(i + 1) && inImplicitObject() && !this.insideForDeclaration && (nextTag !== 'TERMINATOR' || !this.looksObjectish(i + 2))) {
-          offset = nextTag === 'OUTDENT' ? 1 : 0;
-          while (inImplicitObject()) {
-            endImplicitObject(i + offset);
-          }
-        }
-        return forward(1);
-      });
-    };
-
-    Rewriter.prototype.addLocationDataToGeneratedTokens = function() {
-      return this.scanTokens(function(token, i, tokens) {
-        var column, line, nextLocation, prevLocation, _ref, _ref1;
-        if (token[2]) {
-          return 1;
-        }
-        if (!(token.generated || token.explicit)) {
-          return 1;
-        }
-        if (token[0] === '{' && (nextLocation = (_ref = tokens[i + 1]) != null ? _ref[2] : void 0)) {
-          line = nextLocation.first_line, column = nextLocation.first_column;
-        } else if (prevLocation = (_ref1 = tokens[i - 1]) != null ? _ref1[2] : void 0) {
-          line = prevLocation.last_line, column = prevLocation.last_column;
-        } else {
-          line = column = 0;
-        }
-        token[2] = {
-          first_line: line,
-          first_column: column,
-          last_line: line,
-          last_column: column
-        };
-        return 1;
-      });
-    };
-
-    Rewriter.prototype.normalizeLines = function() {
-      var action, condition, indent, outdent, starter;
-      starter = indent = outdent = null;
-      condition = function(token, i) {
-        var _ref, _ref1, _ref2, _ref3;
-        return token[1] !== ';' && (_ref = token[0], __indexOf.call(SINGLE_CLOSERS, _ref) >= 0) && !(token[0] === 'TERMINATOR' && (_ref1 = this.tag(i + 1), __indexOf.call(EXPRESSION_CLOSE, _ref1) >= 0)) && !(token[0] === 'ELSE' && starter !== 'THEN') && !(((_ref2 = token[0]) === 'CATCH' || _ref2 === 'FINALLY') && (starter === '->' || starter === '=>')) || (_ref3 = token[0], __indexOf.call(CALL_CLOSERS, _ref3) >= 0) && this.tokens[i - 1].newLine;
-      };
-      action = function(token, i) {
-        return this.tokens.splice((this.tag(i - 1) === ',' ? i - 1 : i), 0, outdent);
-      };
-      return this.scanTokens(function(token, i, tokens) {
-        var j, tag, _i, _ref, _ref1, _ref2;
-        tag = token[0];
-        if (tag === 'TERMINATOR') {
-          if (this.tag(i + 1) === 'ELSE' && this.tag(i - 1) !== 'OUTDENT') {
-            tokens.splice.apply(tokens, [i, 1].concat(__slice.call(this.indentation())));
-            return 1;
-          }
-          if (_ref = this.tag(i + 1), __indexOf.call(EXPRESSION_CLOSE, _ref) >= 0) {
-            tokens.splice(i, 1);
-            return 0;
-          }
-        }
-        if (tag === 'CATCH') {
-          for (j = _i = 1; _i <= 2; j = ++_i) {
-            if (!((_ref1 = this.tag(i + j)) === 'OUTDENT' || _ref1 === 'TERMINATOR' || _ref1 === 'FINALLY')) {
-              continue;
-            }
-            tokens.splice.apply(tokens, [i + j, 0].concat(__slice.call(this.indentation())));
-            return 2 + j;
-          }
-        }
-        if (__indexOf.call(SINGLE_LINERS, tag) >= 0 && this.tag(i + 1) !== 'INDENT' && !(tag === 'ELSE' && this.tag(i + 1) === 'IF')) {
-          starter = tag;
-          _ref2 = this.indentation(tokens[i]), indent = _ref2[0], outdent = _ref2[1];
-          if (starter === 'THEN') {
-            indent.fromThen = true;
-          }
-          tokens.splice(i + 1, 0, indent);
-          this.detectEnd(i + 2, condition, action);
-          if (tag === 'THEN') {
-            tokens.splice(i, 1);
-          }
-          return 1;
-        }
-        return 1;
-      });
-    };
-
-    Rewriter.prototype.tagPostfixConditionals = function() {
-      var action, condition, original;
-      original = null;
-      condition = function(token, i) {
-        var prevTag, tag;
-        tag = token[0];
-        prevTag = this.tokens[i - 1][0];
-        return tag === 'TERMINATOR' || (tag === 'INDENT' && __indexOf.call(SINGLE_LINERS, prevTag) < 0);
-      };
-      action = function(token, i) {
-        if (token[0] !== 'INDENT' || (token.generated && !token.fromThen)) {
-          return original[0] = 'POST_' + original[0];
-        }
-      };
-      return this.scanTokens(function(token, i) {
-        if (token[0] !== 'IF') {
-          return 1;
-        }
-        original = token;
-        this.detectEnd(i + 1, condition, action);
-        return 1;
-      });
-    };
-
-    Rewriter.prototype.indentation = function(origin) {
-      var indent, outdent;
-      indent = ['INDENT', 2];
-      outdent = ['OUTDENT', 2];
-      if (origin) {
-        indent.generated = outdent.generated = true;
-        indent.origin = outdent.origin = origin;
-      } else {
-        indent.explicit = outdent.explicit = true;
-      }
-      return [indent, outdent];
-    };
-
-    Rewriter.prototype.generate = generate;
-
-    Rewriter.prototype.tag = function(i) {
-      var _ref;
-      return (_ref = this.tokens[i]) != null ? _ref[0] : void 0;
-    };
-
-    return Rewriter;
-
-  })();
-
-  BALANCED_PAIRS = [['(', ')'], ['[', ']'], ['{', '}'], ['INDENT', 'OUTDENT'], ['CALL_START', 'CALL_END'], ['PARAM_START', 'PARAM_END'], ['INDEX_START', 'INDEX_END']];
-
-  exports.INVERSES = INVERSES = {};
-
-  EXPRESSION_START = [];
-
-  EXPRESSION_END = [];
-
-  for (_i = 0, _len = BALANCED_PAIRS.length; _i < _len; _i++) {
-    _ref = BALANCED_PAIRS[_i], left = _ref[0], rite = _ref[1];
-    EXPRESSION_START.push(INVERSES[rite] = left);
-    EXPRESSION_END.push(INVERSES[left] = rite);
-  }
-
-  EXPRESSION_CLOSE = ['CATCH', 'THEN', 'ELSE', 'FINALLY'].concat(EXPRESSION_END);
-
-  IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS'];
-
-  IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'UNARY_MATH', 'SUPER', 'THROW', '@', '->', '=>', '[', '(', '{', '--', '++'];
-
-  IMPLICIT_UNSPACED_CALL = ['+', '-'];
-
-  IMPLICIT_END = ['POST_IF', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY', 'LOOP', 'TERMINATOR'];
-
-  SINGLE_LINERS = ['ELSE', '->', '=>', 'TRY', 'FINALLY', 'THEN'];
-
-  SINGLE_CLOSERS = ['TERMINATOR', 'CATCH', 'FINALLY', 'ELSE', 'OUTDENT', 'LEADING_WHEN'];
-
-  LINEBREAKS = ['TERMINATOR', 'INDENT', 'OUTDENT'];
-
-  CALL_CLOSERS = ['.', '?.', '::', '?::'];
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/scope.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/scope.js
deleted file mode 100644 (file)
index cb43b02..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(function() {
-  var Scope, extend, last, _ref;
-
-  _ref = require('./helpers'), extend = _ref.extend, last = _ref.last;
-
-  exports.Scope = Scope = (function() {
-    Scope.root = null;
-
-    function Scope(parent, expressions, method) {
-      this.parent = parent;
-      this.expressions = expressions;
-      this.method = method;
-      this.variables = [
-        {
-          name: 'arguments',
-          type: 'arguments'
-        }
-      ];
-      this.positions = {};
-      if (!this.parent) {
-        Scope.root = this;
-      }
-    }
-
-    Scope.prototype.add = function(name, type, immediate) {
-      if (this.shared && !immediate) {
-        return this.parent.add(name, type, immediate);
-      }
-      if (Object.prototype.hasOwnProperty.call(this.positions, name)) {
-        return this.variables[this.positions[name]].type = type;
-      } else {
-        return this.positions[name] = this.variables.push({
-          name: name,
-          type: type
-        }) - 1;
-      }
-    };
-
-    Scope.prototype.namedMethod = function() {
-      var _ref1;
-      if (((_ref1 = this.method) != null ? _ref1.name : void 0) || !this.parent) {
-        return this.method;
-      }
-      return this.parent.namedMethod();
-    };
-
-    Scope.prototype.find = function(name) {
-      if (this.check(name)) {
-        return true;
-      }
-      this.add(name, 'var');
-      return false;
-    };
-
-    Scope.prototype.parameter = function(name) {
-      if (this.shared && this.parent.check(name, true)) {
-        return;
-      }
-      return this.add(name, 'param');
-    };
-
-    Scope.prototype.check = function(name) {
-      var _ref1;
-      return !!(this.type(name) || ((_ref1 = this.parent) != null ? _ref1.check(name) : void 0));
-    };
-
-    Scope.prototype.temporary = function(name, index) {
-      if (name.length > 1) {
-        return '_' + name + (index > 1 ? index - 1 : '');
-      } else {
-        return '_' + (index + parseInt(name, 36)).toString(36).replace(/\d/g, 'a');
-      }
-    };
-
-    Scope.prototype.type = function(name) {
-      var v, _i, _len, _ref1;
-      _ref1 = this.variables;
-      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
-        v = _ref1[_i];
-        if (v.name === name) {
-          return v.type;
-        }
-      }
-      return null;
-    };
-
-    Scope.prototype.freeVariable = function(name, reserve) {
-      var index, temp;
-      if (reserve == null) {
-        reserve = true;
-      }
-      index = 0;
-      while (this.check((temp = this.temporary(name, index)))) {
-        index++;
-      }
-      if (reserve) {
-        this.add(temp, 'var', true);
-      }
-      return temp;
-    };
-
-    Scope.prototype.assign = function(name, value) {
-      this.add(name, {
-        value: value,
-        assigned: true
-      }, true);
-      return this.hasAssignments = true;
-    };
-
-    Scope.prototype.hasDeclarations = function() {
-      return !!this.declaredVariables().length;
-    };
-
-    Scope.prototype.declaredVariables = function() {
-      var realVars, tempVars, v, _i, _len, _ref1;
-      realVars = [];
-      tempVars = [];
-      _ref1 = this.variables;
-      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
-        v = _ref1[_i];
-        if (v.type === 'var') {
-          (v.name.charAt(0) === '_' ? tempVars : realVars).push(v.name);
-        }
-      }
-      return realVars.sort().concat(tempVars.sort());
-    };
-
-    Scope.prototype.assignedVariables = function() {
-      var v, _i, _len, _ref1, _results;
-      _ref1 = this.variables;
-      _results = [];
-      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
-        v = _ref1[_i];
-        if (v.type.assigned) {
-          _results.push("" + v.name + " = " + v.type.value);
-        }
-      }
-      return _results;
-    };
-
-    return Scope;
-
-  })();
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/sourcemap.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/sourcemap.js
deleted file mode 100644 (file)
index c94ebd1..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(function() {
-  var LineMap, SourceMap;
-
-  LineMap = (function() {
-    function LineMap(line) {
-      this.line = line;
-      this.columns = [];
-    }
-
-    LineMap.prototype.add = function(column, _arg, options) {
-      var sourceColumn, sourceLine;
-      sourceLine = _arg[0], sourceColumn = _arg[1];
-      if (options == null) {
-        options = {};
-      }
-      if (this.columns[column] && options.noReplace) {
-        return;
-      }
-      return this.columns[column] = {
-        line: this.line,
-        column: column,
-        sourceLine: sourceLine,
-        sourceColumn: sourceColumn
-      };
-    };
-
-    LineMap.prototype.sourceLocation = function(column) {
-      var mapping;
-      while (!((mapping = this.columns[column]) || (column <= 0))) {
-        column--;
-      }
-      return mapping && [mapping.sourceLine, mapping.sourceColumn];
-    };
-
-    return LineMap;
-
-  })();
-
-  SourceMap = (function() {
-    var BASE64_CHARS, VLQ_CONTINUATION_BIT, VLQ_SHIFT, VLQ_VALUE_MASK;
-
-    function SourceMap() {
-      this.lines = [];
-    }
-
-    SourceMap.prototype.add = function(sourceLocation, generatedLocation, options) {
-      var column, line, lineMap, _base;
-      if (options == null) {
-        options = {};
-      }
-      line = generatedLocation[0], column = generatedLocation[1];
-      lineMap = ((_base = this.lines)[line] || (_base[line] = new LineMap(line)));
-      return lineMap.add(column, sourceLocation, options);
-    };
-
-    SourceMap.prototype.sourceLocation = function(_arg) {
-      var column, line, lineMap;
-      line = _arg[0], column = _arg[1];
-      while (!((lineMap = this.lines[line]) || (line <= 0))) {
-        line--;
-      }
-      return lineMap && lineMap.sourceLocation(column);
-    };
-
-    SourceMap.prototype.generate = function(options, code) {
-      var buffer, lastColumn, lastSourceColumn, lastSourceLine, lineMap, lineNumber, mapping, needComma, v3, writingline, _i, _j, _len, _len1, _ref, _ref1;
-      if (options == null) {
-        options = {};
-      }
-      if (code == null) {
-        code = null;
-      }
-      writingline = 0;
-      lastColumn = 0;
-      lastSourceLine = 0;
-      lastSourceColumn = 0;
-      needComma = false;
-      buffer = "";
-      _ref = this.lines;
-      for (lineNumber = _i = 0, _len = _ref.length; _i < _len; lineNumber = ++_i) {
-        lineMap = _ref[lineNumber];
-        if (lineMap) {
-          _ref1 = lineMap.columns;
-          for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
-            mapping = _ref1[_j];
-            if (!(mapping)) {
-              continue;
-            }
-            while (writingline < mapping.line) {
-              lastColumn = 0;
-              needComma = false;
-              buffer += ";";
-              writingline++;
-            }
-            if (needComma) {
-              buffer += ",";
-              needComma = false;
-            }
-            buffer += this.encodeVlq(mapping.column - lastColumn);
-            lastColumn = mapping.column;
-            buffer += this.encodeVlq(0);
-            buffer += this.encodeVlq(mapping.sourceLine - lastSourceLine);
-            lastSourceLine = mapping.sourceLine;
-            buffer += this.encodeVlq(mapping.sourceColumn - lastSourceColumn);
-            lastSourceColumn = mapping.sourceColumn;
-            needComma = true;
-          }
-        }
-      }
-      v3 = {
-        version: 3,
-        file: options.generatedFile || '',
-        sourceRoot: options.sourceRoot || '',
-        sources: options.sourceFiles || [''],
-        names: [],
-        mappings: buffer
-      };
-      if (options.inline) {
-        v3.sourcesContent = [code];
-      }
-      return JSON.stringify(v3, null, 2);
-    };
-
-    VLQ_SHIFT = 5;
-
-    VLQ_CONTINUATION_BIT = 1 << VLQ_SHIFT;
-
-    VLQ_VALUE_MASK = VLQ_CONTINUATION_BIT - 1;
-
-    SourceMap.prototype.encodeVlq = function(value) {
-      var answer, nextChunk, signBit, valueToEncode;
-      answer = '';
-      signBit = value < 0 ? 1 : 0;
-      valueToEncode = (Math.abs(value) << 1) + signBit;
-      while (valueToEncode || !answer) {
-        nextChunk = valueToEncode & VLQ_VALUE_MASK;
-        valueToEncode = valueToEncode >> VLQ_SHIFT;
-        if (valueToEncode) {
-          nextChunk |= VLQ_CONTINUATION_BIT;
-        }
-        answer += this.encodeBase64(nextChunk);
-      }
-      return answer;
-    };
-
-    BASE64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
-
-    SourceMap.prototype.encodeBase64 = function(value) {
-      return BASE64_CHARS[value] || (function() {
-        throw new Error("Cannot Base64 encode value: " + value);
-      })();
-    };
-
-    return SourceMap;
-
-  })();
-
-  module.exports = SourceMap;
-
-}).call(this);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/package.json b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/package.json
deleted file mode 100644 (file)
index cc7b329..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-  "name": "mkdirp",
-  "description": "Recursively mkdir, like `mkdir -p`",
-  "version": "0.3.5",
-  "author": {
-    "name": "James Halliday",
-    "email": "mail@substack.net",
-    "url": "http://substack.net"
-  },
-  "main": "./index",
-  "keywords": [
-    "mkdir",
-    "directory"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "http://github.com/substack/node-mkdirp.git"
-  },
-  "scripts": {
-    "test": "tap test/*.js"
-  },
-  "devDependencies": {
-    "tap": "~0.4.0"
-  },
-  "license": "MIT",
-  "_id": "mkdirp@0.3.5",
-  "dist": {
-    "shasum": "de3e5f8961c88c787ee1368df849ac4413eca8d7",
-    "tarball": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"
-  },
-  "_from": "mkdirp@>=0.3.5 <0.4.0",
-  "_npmVersion": "1.2.2",
-  "_npmUser": {
-    "name": "substack",
-    "email": "mail@substack.net"
-  },
-  "maintainers": [
-    {
-      "name": "substack",
-      "email": "mail@substack.net"
-    }
-  ],
-  "directories": {},
-  "_shasum": "de3e5f8961c88c787ee1368df849ac4413eca8d7",
-  "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"
-}
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/package.json b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/package.json
deleted file mode 100644 (file)
index 9c43a2c..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-{
-  "name": "coffee-script",
-  "description": "Unfancy JavaScript",
-  "keywords": [
-    "javascript",
-    "language",
-    "coffeescript",
-    "compiler"
-  ],
-  "author": {
-    "name": "Jeremy Ashkenas"
-  },
-  "version": "1.8.0",
-  "license": "MIT",
-  "engines": {
-    "node": ">=0.8.0"
-  },
-  "directories": {
-    "lib": "./lib/coffee-script"
-  },
-  "main": "./lib/coffee-script/coffee-script",
-  "bin": {
-    "coffee": "./bin/coffee",
-    "cake": "./bin/cake"
-  },
-  "preferGlobal": true,
-  "scripts": {
-    "test": "node ./bin/cake test"
-  },
-  "homepage": "http://coffeescript.org",
-  "bugs": {
-    "url": "https://github.com/jashkenas/coffeescript/issues"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/jashkenas/coffeescript.git"
-  },
-  "devDependencies": {
-    "uglify-js": "~2.2",
-    "jison": ">=0.2.0",
-    "highlight.js": "~8.0.0",
-    "underscore": "~1.5.2",
-    "docco": "~0.6.2"
-  },
-  "dependencies": {
-    "mkdirp": "~0.3.5"
-  },
-  "_id": "coffee-script@1.8.0",
-  "dist": {
-    "shasum": "9c9f1d2b4a52a000ded15b659791703648263c1d",
-    "tarball": "http://registry.npmjs.org/coffee-script/-/coffee-script-1.8.0.tgz"
-  },
-  "_from": "coffee-script@>=1.8.0 <1.9.0",
-  "_npmVersion": "1.3.21",
-  "_npmUser": {
-    "name": "jashkenas",
-    "email": "jashkenas@gmail.com"
-  },
-  "maintainers": [
-    {
-      "name": "jashkenas",
-      "email": "jashkenas@gmail.com"
-    },
-    {
-      "name": "michaelficarra",
-      "email": "npm@michael.ficarra.me"
-    }
-  ],
-  "_shasum": "9c9f1d2b4a52a000ded15b659791703648263c1d",
-  "_resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.8.0.tgz"
-}
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/register.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/register.js
deleted file mode 100644 (file)
index 97b33d7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-require('./lib/coffee-script/register');
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/repl.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/repl.js
deleted file mode 100644 (file)
index d2706a7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lib/coffee-script/repl');
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/.npmignore b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/.npmignore
deleted file mode 100644 (file)
index 9303c34..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules/
-npm-debug.log
\ No newline at end of file
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/.travis.yml b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/.travis.yml
deleted file mode 100644 (file)
index 84fd7ca..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
-  - 0.6
-  - 0.8
-  - 0.9
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/examples/pow.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/examples/pow.js
deleted file mode 100644 (file)
index e692421..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-var mkdirp = require('mkdirp');
-
-mkdirp('/tmp/foo/bar/baz', function (err) {
-    if (err) console.error(err)
-    else console.log('pow!')
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/index.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/index.js
deleted file mode 100644 (file)
index fda6de8..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-var path = require('path');
-var fs = require('fs');
-
-module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP;
-
-function mkdirP (p, mode, f, made) {
-    if (typeof mode === 'function' || mode === undefined) {
-        f = mode;
-        mode = 0777 & (~process.umask());
-    }
-    if (!made) made = null;
-
-    var cb = f || function () {};
-    if (typeof mode === 'string') mode = parseInt(mode, 8);
-    p = path.resolve(p);
-
-    fs.mkdir(p, mode, function (er) {
-        if (!er) {
-            made = made || p;
-            return cb(null, made);
-        }
-        switch (er.code) {
-            case 'ENOENT':
-                mkdirP(path.dirname(p), mode, function (er, made) {
-                    if (er) cb(er, made);
-                    else mkdirP(p, mode, cb, made);
-                });
-                break;
-
-            // In the case of any other error, just see if there's a dir
-            // there already.  If so, then hooray!  If not, then something
-            // is borked.
-            default:
-                fs.stat(p, function (er2, stat) {
-                    // if the stat fails, then that's super weird.
-                    // let the original error be the failure reason.
-                    if (er2 || !stat.isDirectory()) cb(er, made)
-                    else cb(null, made);
-                });
-                break;
-        }
-    });
-}
-
-mkdirP.sync = function sync (p, mode, made) {
-    if (mode === undefined) {
-        mode = 0777 & (~process.umask());
-    }
-    if (!made) made = null;
-
-    if (typeof mode === 'string') mode = parseInt(mode, 8);
-    p = path.resolve(p);
-
-    try {
-        fs.mkdirSync(p, mode);
-        made = made || p;
-    }
-    catch (err0) {
-        switch (err0.code) {
-            case 'ENOENT' :
-                made = sync(path.dirname(p), mode, made);
-                sync(p, mode, made);
-                break;
-
-            // In the case of any other error, just see if there's a dir
-            // there already.  If so, then hooray!  If not, then something
-            // is borked.
-            default:
-                var stat;
-                try {
-                    stat = fs.statSync(p);
-                }
-                catch (err1) {
-                    throw err0;
-                }
-                if (!stat.isDirectory()) throw err0;
-                break;
-        }
-    }
-
-    return made;
-};
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/readme.markdown b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/readme.markdown
deleted file mode 100644 (file)
index 83b0216..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-# mkdirp
-
-Like `mkdir -p`, but in node.js!
-
-[![build status](https://secure.travis-ci.org/substack/node-mkdirp.png)](http://travis-ci.org/substack/node-mkdirp)
-
-# example
-
-## pow.js
-
-```js
-var mkdirp = require('mkdirp');
-    
-mkdirp('/tmp/foo/bar/baz', function (err) {
-    if (err) console.error(err)
-    else console.log('pow!')
-});
-```
-
-Output
-
-```
-pow!
-```
-
-And now /tmp/foo/bar/baz exists, huzzah!
-
-# methods
-
-```js
-var mkdirp = require('mkdirp');
-```
-
-## mkdirp(dir, mode, cb)
-
-Create a new directory and any necessary subdirectories at `dir` with octal
-permission string `mode`.
-
-If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
-
-`cb(err, made)` fires with the error or the first directory `made`
-that had to be created, if any.
-
-## mkdirp.sync(dir, mode)
-
-Synchronously create a new directory and any necessary subdirectories at `dir`
-with octal permission string `mode`.
-
-If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
-
-Returns the first directory that had to be created, if any.
-
-# install
-
-With [npm](http://npmjs.org) do:
-
-```
-npm install mkdirp
-```
-
-# license
-
-MIT
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/chmod.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/chmod.js
deleted file mode 100644 (file)
index 520dcb8..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-var mkdirp = require('../').mkdirp;
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-var ps = [ '', 'tmp' ];
-
-for (var i = 0; i < 25; i++) {
-    var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    ps.push(dir);
-}
-
-var file = ps.join('/');
-
-test('chmod-pre', function (t) {
-    var mode = 0744
-    mkdirp(file, mode, function (er) {
-        t.ifError(er, 'should not error');
-        fs.stat(file, function (er, stat) {
-            t.ifError(er, 'should exist');
-            t.ok(stat && stat.isDirectory(), 'should be directory');
-            t.equal(stat && stat.mode & 0777, mode, 'should be 0744');
-            t.end();
-        });
-    });
-});
-
-test('chmod', function (t) {
-    var mode = 0755
-    mkdirp(file, mode, function (er) {
-        t.ifError(er, 'should not error');
-        fs.stat(file, function (er, stat) {
-            t.ifError(er, 'should exist');
-            t.ok(stat && stat.isDirectory(), 'should be directory');
-            t.end();
-        });
-    });
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/clobber.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/clobber.js
deleted file mode 100644 (file)
index 0eb7099..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-var mkdirp = require('../').mkdirp;
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-var ps = [ '', 'tmp' ];
-
-for (var i = 0; i < 25; i++) {
-    var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    ps.push(dir);
-}
-
-var file = ps.join('/');
-
-// a file in the way
-var itw = ps.slice(0, 3).join('/');
-
-
-test('clobber-pre', function (t) {
-    console.error("about to write to "+itw)
-    fs.writeFileSync(itw, 'I AM IN THE WAY, THE TRUTH, AND THE LIGHT.');
-
-    fs.stat(itw, function (er, stat) {
-        t.ifError(er)
-        t.ok(stat && stat.isFile(), 'should be file')
-        t.end()
-    })
-})
-
-test('clobber', function (t) {
-    t.plan(2);
-    mkdirp(file, 0755, function (err) {
-        t.ok(err);
-        t.equal(err.code, 'ENOTDIR');
-        t.end();
-    });
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/mkdirp.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/mkdirp.js
deleted file mode 100644 (file)
index b07cd70..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('woo', function (t) {
-    t.plan(2);
-    var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    
-    var file = '/tmp/' + [x,y,z].join('/');
-    
-    mkdirp(file, 0755, function (err) {
-        if (err) t.fail(err);
-        else path.exists(file, function (ex) {
-            if (!ex) t.fail('file not created')
-            else fs.stat(file, function (err, stat) {
-                if (err) t.fail(err)
-                else {
-                    t.equal(stat.mode & 0777, 0755);
-                    t.ok(stat.isDirectory(), 'target not a directory');
-                    t.end();
-                }
-            })
-        })
-    });
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/perm.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/perm.js
deleted file mode 100644 (file)
index 23a7abb..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('async perm', function (t) {
-    t.plan(2);
-    var file = '/tmp/' + (Math.random() * (1<<30)).toString(16);
-    
-    mkdirp(file, 0755, function (err) {
-        if (err) t.fail(err);
-        else path.exists(file, function (ex) {
-            if (!ex) t.fail('file not created')
-            else fs.stat(file, function (err, stat) {
-                if (err) t.fail(err)
-                else {
-                    t.equal(stat.mode & 0777, 0755);
-                    t.ok(stat.isDirectory(), 'target not a directory');
-                    t.end();
-                }
-            })
-        })
-    });
-});
-
-test('async root perm', function (t) {
-    mkdirp('/tmp', 0755, function (err) {
-        if (err) t.fail(err);
-        t.end();
-    });
-    t.end();
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/perm_sync.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/perm_sync.js
deleted file mode 100644 (file)
index f685f60..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('sync perm', function (t) {
-    t.plan(2);
-    var file = '/tmp/' + (Math.random() * (1<<30)).toString(16) + '.json';
-    
-    mkdirp.sync(file, 0755);
-    path.exists(file, function (ex) {
-        if (!ex) t.fail('file not created')
-        else fs.stat(file, function (err, stat) {
-            if (err) t.fail(err)
-            else {
-                t.equal(stat.mode & 0777, 0755);
-                t.ok(stat.isDirectory(), 'target not a directory');
-                t.end();
-            }
-        })
-    });
-});
-
-test('sync root perm', function (t) {
-    t.plan(1);
-    
-    var file = '/tmp';
-    mkdirp.sync(file, 0755);
-    path.exists(file, function (ex) {
-        if (!ex) t.fail('file not created')
-        else fs.stat(file, function (err, stat) {
-            if (err) t.fail(err)
-            else {
-                t.ok(stat.isDirectory(), 'target not a directory');
-                t.end();
-            }
-        })
-    });
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/race.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/race.js
deleted file mode 100644 (file)
index 96a0447..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-var mkdirp = require('../').mkdirp;
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('race', function (t) {
-    t.plan(4);
-    var ps = [ '', 'tmp' ];
-    
-    for (var i = 0; i < 25; i++) {
-        var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-        ps.push(dir);
-    }
-    var file = ps.join('/');
-    
-    var res = 2;
-    mk(file, function () {
-        if (--res === 0) t.end();
-    });
-    
-    mk(file, function () {
-        if (--res === 0) t.end();
-    });
-    
-    function mk (file, cb) {
-        mkdirp(file, 0755, function (err) {
-            if (err) t.fail(err);
-            else path.exists(file, function (ex) {
-                if (!ex) t.fail('file not created')
-                else fs.stat(file, function (err, stat) {
-                    if (err) t.fail(err)
-                    else {
-                        t.equal(stat.mode & 0777, 0755);
-                        t.ok(stat.isDirectory(), 'target not a directory');
-                        if (cb) cb();
-                    }
-                })
-            })
-        });
-    }
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/rel.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/rel.js
deleted file mode 100644 (file)
index 7985824..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('rel', function (t) {
-    t.plan(2);
-    var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    
-    var cwd = process.cwd();
-    process.chdir('/tmp');
-    
-    var file = [x,y,z].join('/');
-    
-    mkdirp(file, 0755, function (err) {
-        if (err) t.fail(err);
-        else path.exists(file, function (ex) {
-            if (!ex) t.fail('file not created')
-            else fs.stat(file, function (err, stat) {
-                if (err) t.fail(err)
-                else {
-                    process.chdir(cwd);
-                    t.equal(stat.mode & 0777, 0755);
-                    t.ok(stat.isDirectory(), 'target not a directory');
-                    t.end();
-                }
-            })
-        })
-    });
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/return.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/return.js
deleted file mode 100644 (file)
index bce68e5..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('return value', function (t) {
-    t.plan(4);
-    var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-
-    var file = '/tmp/' + [x,y,z].join('/');
-
-    // should return the first dir created.
-    // By this point, it would be profoundly surprising if /tmp didn't
-    // already exist, since every other test makes things in there.
-    mkdirp(file, function (err, made) {
-        t.ifError(err);
-        t.equal(made, '/tmp/' + x);
-        mkdirp(file, function (err, made) {
-          t.ifError(err);
-          t.equal(made, null);
-        });
-    });
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/return_sync.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/return_sync.js
deleted file mode 100644 (file)
index 7c222d3..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('return value', function (t) {
-    t.plan(2);
-    var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-
-    var file = '/tmp/' + [x,y,z].join('/');
-
-    // should return the first dir created.
-    // By this point, it would be profoundly surprising if /tmp didn't
-    // already exist, since every other test makes things in there.
-    // Note that this will throw on failure, which will fail the test.
-    var made = mkdirp.sync(file);
-    t.equal(made, '/tmp/' + x);
-
-    // making the same file again should have no effect.
-    made = mkdirp.sync(file);
-    t.equal(made, null);
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/root.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/root.js
deleted file mode 100644 (file)
index 97ad7a2..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('root', function (t) {
-    // '/' on unix, 'c:/' on windows.
-    var file = path.resolve('/');
-
-    mkdirp(file, 0755, function (err) {
-        if (err) throw err
-        fs.stat(file, function (er, stat) {
-            if (er) throw er
-            t.ok(stat.isDirectory(), 'target is a directory');
-            t.end();
-        })
-    });
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/sync.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/sync.js
deleted file mode 100644 (file)
index 7530cad..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('sync', function (t) {
-    t.plan(2);
-    var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-
-    var file = '/tmp/' + [x,y,z].join('/');
-
-    try {
-        mkdirp.sync(file, 0755);
-    } catch (err) {
-        t.fail(err);
-        return t.end();
-    }
-
-    path.exists(file, function (ex) {
-        if (!ex) t.fail('file not created')
-        else fs.stat(file, function (err, stat) {
-            if (err) t.fail(err)
-            else {
-                t.equal(stat.mode & 0777, 0755);
-                t.ok(stat.isDirectory(), 'target not a directory');
-                t.end();
-            }
-        });
-    });
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/umask.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/umask.js
deleted file mode 100644 (file)
index 64ccafe..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('implicit mode from umask', function (t) {
-    t.plan(2);
-    var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    
-    var file = '/tmp/' + [x,y,z].join('/');
-    
-    mkdirp(file, function (err) {
-        if (err) t.fail(err);
-        else path.exists(file, function (ex) {
-            if (!ex) t.fail('file not created')
-            else fs.stat(file, function (err, stat) {
-                if (err) t.fail(err)
-                else {
-                    t.equal(stat.mode & 0777, 0777 & (~process.umask()));
-                    t.ok(stat.isDirectory(), 'target not a directory');
-                    t.end();
-                }
-            })
-        })
-    });
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/umask_sync.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/test/umask_sync.js
deleted file mode 100644 (file)
index 35bd5cb..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('umask sync modes', function (t) {
-    t.plan(2);
-    var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-
-    var file = '/tmp/' + [x,y,z].join('/');
-
-    try {
-        mkdirp.sync(file);
-    } catch (err) {
-        t.fail(err);
-        return t.end();
-    }
-
-    path.exists(file, function (ex) {
-        if (!ex) t.fail('file not created')
-        else fs.stat(file, function (err, stat) {
-            if (err) t.fail(err)
-            else {
-                t.equal(stat.mode & 0777, (0777 & (~process.umask())));
-                t.ok(stat.isDirectory(), 'target not a directory');
-                t.end();
-            }
-        });
-    });
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/.npmignore b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/.npmignore
deleted file mode 100644 (file)
index 3dddf3f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-dist/*
-node_modules/*
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/.travis.yml b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/.travis.yml
deleted file mode 100644 (file)
index ddc9c4f..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
-  - 0.8
-  - "0.10"
\ No newline at end of file
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/CHANGELOG.md b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/CHANGELOG.md
deleted file mode 100644 (file)
index 2e7ca5d..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-# Change Log
-
-## 0.1.43
-
-* Performance improvements for `SourceMapGenerator` and `SourceNode`. See issue
-  #148 for some discussion and issues #150, #151, and #152 for implementations.
-
-## 0.1.42
-
-* Fix an issue where `SourceNode`s from different versions of the source-map
-  library couldn't be used in conjunction with each other. See issue #142.
-
-## 0.1.41
-
-* Fix a bug with getting the source content of relative sources with a "./"
-  prefix. See issue #145 and [Bug 1090768](bugzil.la/1090768).
-
-* Add the `SourceMapConsumer.prototype.computeColumnSpans` method to compute the
-  column span of each mapping.
-
-* Add the `SourceMapConsumer.prototype.allGeneratedPositionsFor` method to find
-  all generated positions associated with a given original source and line.
-
-## 0.1.40
-
-* Performance improvements for parsing source maps in SourceMapConsumer.
-
-## 0.1.39
-
-* Fix a bug where setting a source's contents to null before any source content
-  had been set before threw a TypeError. See issue #131.
-
-## 0.1.38
-
-* Fix a bug where finding relative paths from an empty path were creating
-  absolute paths. See issue #129.
-
-## 0.1.37
-
-* Fix a bug where if the source root was an empty string, relative source paths
-  would turn into absolute source paths. Issue #124.
-
-## 0.1.36
-
-* Allow the `names` mapping property to be an empty string. Issue #121.
-
-## 0.1.35
-
-* A third optional parameter was added to `SourceNode.fromStringWithSourceMap`
-  to specify a path that relative sources in the second parameter should be
-  relative to. Issue #105.
-
-* If no file property is given to a `SourceMapGenerator`, then the resulting
-  source map will no longer have a `null` file property. The property will
-  simply not exist. Issue #104.
-
-* Fixed a bug where consecutive newlines were ignored in `SourceNode`s.
-  Issue #116.
-
-## 0.1.34
-
-* Make `SourceNode` work with windows style ("\r\n") newlines. Issue #103.
-
-* Fix bug involving source contents and the
-  `SourceMapGenerator.prototype.applySourceMap`. Issue #100.
-
-## 0.1.33
-
-* Fix some edge cases surrounding path joining and URL resolution.
-
-* Add a third parameter for relative path to
-  `SourceMapGenerator.prototype.applySourceMap`.
-
-* Fix issues with mappings and EOLs.
-
-## 0.1.32
-
-* Fixed a bug where SourceMapConsumer couldn't handle negative relative columns
-  (issue 92).
-
-* Fixed test runner to actually report number of failed tests as its process
-  exit code.
-
-* Fixed a typo when reporting bad mappings (issue 87).
-
-## 0.1.31
-
-* Delay parsing the mappings in SourceMapConsumer until queried for a source
-  location.
-
-* Support Sass source maps (which at the time of writing deviate from the spec
-  in small ways) in SourceMapConsumer.
-
-## 0.1.30
-
-* Do not join source root with a source, when the source is a data URI.
-
-* Extend the test runner to allow running single specific test files at a time.
-
-* Performance improvements in `SourceNode.prototype.walk` and
-  `SourceMapConsumer.prototype.eachMapping`.
-
-* Source map browser builds will now work inside Workers.
-
-* Better error messages when attempting to add an invalid mapping to a
-  `SourceMapGenerator`.
-
-## 0.1.29
-
-* Allow duplicate entries in the `names` and `sources` arrays of source maps
-  (usually from TypeScript) we are parsing. Fixes github issue 72.
-
-## 0.1.28
-
-* Skip duplicate mappings when creating source maps from SourceNode; github
-  issue 75.
-
-## 0.1.27
-
-* Don't throw an error when the `file` property is missing in SourceMapConsumer,
-  we don't use it anyway.
-
-## 0.1.26
-
-* Fix SourceNode.fromStringWithSourceMap for empty maps. Fixes github issue 70.
-
-## 0.1.25
-
-* Make compatible with browserify
-
-## 0.1.24
-
-* Fix issue with absolute paths and `file://` URIs. See
-  https://bugzilla.mozilla.org/show_bug.cgi?id=885597
-
-## 0.1.23
-
-* Fix issue with absolute paths and sourcesContent, github issue 64.
-
-## 0.1.22
-
-* Ignore duplicate mappings in SourceMapGenerator. Fixes github issue 21.
-
-## 0.1.21
-
-* Fixed handling of sources that start with a slash so that they are relative to
-  the source root's host.
-
-## 0.1.20
-
-* Fixed github issue #43: absolute URLs aren't joined with the source root
-  anymore.
-
-## 0.1.19
-
-* Using Travis CI to run tests.
-
-## 0.1.18
-
-* Fixed a bug in the handling of sourceRoot.
-
-## 0.1.17
-
-* Added SourceNode.fromStringWithSourceMap.
-
-## 0.1.16
-
-* Added missing documentation.
-
-* Fixed the generating of empty mappings in SourceNode.
-
-## 0.1.15
-
-* Added SourceMapGenerator.applySourceMap.
-
-## 0.1.14
-
-* The sourceRoot is now handled consistently.
-
-## 0.1.13
-
-* Added SourceMapGenerator.fromSourceMap.
-
-## 0.1.12
-
-* SourceNode now generates empty mappings too.
-
-## 0.1.11
-
-* Added name support to SourceNode.
-
-## 0.1.10
-
-* Added sourcesContent support to the customer and generator.
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/LICENSE b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/LICENSE
deleted file mode 100644 (file)
index ed1b7cf..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-
-Copyright (c) 2009-2011, Mozilla Foundation and contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the names of the Mozilla Foundation nor the names of project
-  contributors may be used to endorse or promote products derived from this
-  software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/Makefile.dryice.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/Makefile.dryice.js
deleted file mode 100644 (file)
index d6fc26a..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-var path = require('path');
-var fs = require('fs');
-var copy = require('dryice').copy;
-
-function removeAmdefine(src) {
-  src = String(src).replace(
-    /if\s*\(typeof\s*define\s*!==\s*'function'\)\s*{\s*var\s*define\s*=\s*require\('amdefine'\)\(module,\s*require\);\s*}\s*/g,
-    '');
-  src = src.replace(
-    /\b(define\(.*)('amdefine',?)/gm,
-    '$1');
-  return src;
-}
-removeAmdefine.onRead = true;
-
-function makeNonRelative(src) {
-  return src
-    .replace(/require\('.\//g, 'require(\'source-map/')
-    .replace(/\.\.\/\.\.\/lib\//g, '');
-}
-makeNonRelative.onRead = true;
-
-function buildBrowser() {
-  console.log('\nCreating dist/source-map.js');
-
-  var project = copy.createCommonJsProject({
-    roots: [ path.join(__dirname, 'lib') ]
-  });
-
-  copy({
-    source: [
-      'build/mini-require.js',
-      {
-        project: project,
-        require: [ 'source-map/source-map-generator',
-                   'source-map/source-map-consumer',
-                   'source-map/source-node']
-      },
-      'build/suffix-browser.js'
-    ],
-    filter: [
-      copy.filter.moduleDefines,
-      removeAmdefine
-    ],
-    dest: 'dist/source-map.js'
-  });
-}
-
-function buildBrowserMin() {
-  console.log('\nCreating dist/source-map.min.js');
-
-  copy({
-    source: 'dist/source-map.js',
-    filter: copy.filter.uglifyjs,
-    dest: 'dist/source-map.min.js'
-  });
-}
-
-function buildFirefox() {
-  console.log('\nCreating dist/SourceMap.jsm');
-
-  var project = copy.createCommonJsProject({
-    roots: [ path.join(__dirname, 'lib') ]
-  });
-
-  copy({
-    source: [
-      'build/prefix-source-map.jsm',
-      {
-        project: project,
-        require: [ 'source-map/source-map-consumer',
-                   'source-map/source-map-generator',
-                   'source-map/source-node' ]
-      },
-      'build/suffix-source-map.jsm'
-    ],
-    filter: [
-      copy.filter.moduleDefines,
-      removeAmdefine,
-      makeNonRelative
-    ],
-    dest: 'dist/SourceMap.jsm'
-  });
-
-  // Create dist/test/Utils.jsm
-  console.log('\nCreating dist/test/Utils.jsm');
-
-  project = copy.createCommonJsProject({
-    roots: [ __dirname, path.join(__dirname, 'lib') ]
-  });
-
-  copy({
-    source: [
-      'build/prefix-utils.jsm',
-      'build/assert-shim.js',
-      {
-        project: project,
-        require: [ 'test/source-map/util' ]
-      },
-      'build/suffix-utils.jsm'
-    ],
-    filter: [
-      copy.filter.moduleDefines,
-      removeAmdefine,
-      makeNonRelative
-    ],
-    dest: 'dist/test/Utils.jsm'
-  });
-
-  function isTestFile(f) {
-    return /^test\-.*?\.js/.test(f);
-  }
-
-  var testFiles = fs.readdirSync(path.join(__dirname, 'test', 'source-map')).filter(isTestFile);
-
-  testFiles.forEach(function (testFile) {
-    console.log('\nCreating', path.join('dist', 'test', testFile.replace(/\-/g, '_')));
-
-    copy({
-      source: [
-        'build/test-prefix.js',
-        path.join('test', 'source-map', testFile),
-        'build/test-suffix.js'
-      ],
-      filter: [
-        removeAmdefine,
-        makeNonRelative,
-        function (input, source) {
-          return input.replace('define(',
-                               'define("'
-                               + path.join('test', 'source-map', testFile.replace(/\.js$/, ''))
-                               + '", ["require", "exports", "module"], ');
-        },
-        function (input, source) {
-          return input.replace('{THIS_MODULE}', function () {
-            return "test/source-map/" + testFile.replace(/\.js$/, '');
-          });
-        }
-      ],
-      dest: path.join('dist', 'test', testFile.replace(/\-/g, '_'))
-    });
-  });
-}
-
-function ensureDir(name) {
-  var dirExists = false;
-  try {
-    dirExists = fs.statSync(name).isDirectory();
-  } catch (err) {}
-
-  if (!dirExists) {
-    fs.mkdirSync(name, 0777);
-  }
-}
-
-ensureDir("dist");
-ensureDir("dist/test");
-buildFirefox();
-buildBrowser();
-buildBrowserMin();
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/README.md b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/README.md
deleted file mode 100644 (file)
index 59767aa..0000000
+++ /dev/null
@@ -1,475 +0,0 @@
-# Source Map
-
-This is a library to generate and consume the source map format
-[described here][format].
-
-This library is written in the Asynchronous Module Definition format, and works
-in the following environments:
-
-* Modern Browsers supporting ECMAScript 5 (either after the build, or with an
-  AMD loader such as RequireJS)
-
-* Inside Firefox (as a JSM file, after the build)
-
-* With NodeJS versions 0.8.X and higher
-
-## Node
-
-    $ npm install source-map
-
-## Building from Source (for everywhere else)
-
-Install Node and then run
-
-    $ git clone https://fitzgen@github.com/mozilla/source-map.git
-    $ cd source-map
-    $ npm link .
-
-Next, run
-
-    $ node Makefile.dryice.js
-
-This should spew a bunch of stuff to stdout, and create the following files:
-
-* `dist/source-map.js` - The unminified browser version.
-
-* `dist/source-map.min.js` - The minified browser version.
-
-* `dist/SourceMap.jsm` - The JavaScript Module for inclusion in Firefox source.
-
-## Examples
-
-### Consuming a source map
-
-    var rawSourceMap = {
-      version: 3,
-      file: 'min.js',
-      names: ['bar', 'baz', 'n'],
-      sources: ['one.js', 'two.js'],
-      sourceRoot: 'http://example.com/www/js/',
-      mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
-    };
-
-    var smc = new SourceMapConsumer(rawSourceMap);
-
-    console.log(smc.sources);
-    // [ 'http://example.com/www/js/one.js',
-    //   'http://example.com/www/js/two.js' ]
-
-    console.log(smc.originalPositionFor({
-      line: 2,
-      column: 28
-    }));
-    // { source: 'http://example.com/www/js/two.js',
-    //   line: 2,
-    //   column: 10,
-    //   name: 'n' }
-
-    console.log(smc.generatedPositionFor({
-      source: 'http://example.com/www/js/two.js',
-      line: 2,
-      column: 10
-    }));
-    // { line: 2, column: 28 }
-
-    smc.eachMapping(function (m) {
-      // ...
-    });
-
-### Generating a source map
-
-In depth guide:
-[**Compiling to JavaScript, and Debugging with Source Maps**](https://hacks.mozilla.org/2013/05/compiling-to-javascript-and-debugging-with-source-maps/)
-
-#### With SourceNode (high level API)
-
-    function compile(ast) {
-      switch (ast.type) {
-      case 'BinaryExpression':
-        return new SourceNode(
-          ast.location.line,
-          ast.location.column,
-          ast.location.source,
-          [compile(ast.left), " + ", compile(ast.right)]
-        );
-      case 'Literal':
-        return new SourceNode(
-          ast.location.line,
-          ast.location.column,
-          ast.location.source,
-          String(ast.value)
-        );
-      // ...
-      default:
-        throw new Error("Bad AST");
-      }
-    }
-
-    var ast = parse("40 + 2", "add.js");
-    console.log(compile(ast).toStringWithSourceMap({
-      file: 'add.js'
-    }));
-    // { code: '40 + 2',
-    //   map: [object SourceMapGenerator] }
-
-#### With SourceMapGenerator (low level API)
-
-    var map = new SourceMapGenerator({
-      file: "source-mapped.js"
-    });
-
-    map.addMapping({
-      generated: {
-        line: 10,
-        column: 35
-      },
-      source: "foo.js",
-      original: {
-        line: 33,
-        column: 2
-      },
-      name: "christopher"
-    });
-
-    console.log(map.toString());
-    // '{"version":3,"file":"source-mapped.js","sources":["foo.js"],"names":["christopher"],"mappings":";;;;;;;;;mCAgCEA"}'
-
-## API
-
-Get a reference to the module:
-
-    // NodeJS
-    var sourceMap = require('source-map');
-
-    // Browser builds
-    var sourceMap = window.sourceMap;
-
-    // Inside Firefox
-    let sourceMap = {};
-    Components.utils.import('resource:///modules/devtools/SourceMap.jsm', sourceMap);
-
-### SourceMapConsumer
-
-A SourceMapConsumer instance represents a parsed source map which we can query
-for information about the original file positions by giving it a file position
-in the generated source.
-
-#### new SourceMapConsumer(rawSourceMap)
-
-The only parameter is the raw source map (either as a string which can be
-`JSON.parse`'d, or an object). According to the spec, source maps have the
-following attributes:
-
-* `version`: Which version of the source map spec this map is following.
-
-* `sources`: An array of URLs to the original source files.
-
-* `names`: An array of identifiers which can be referrenced by individual
-  mappings.
-
-* `sourceRoot`: Optional. The URL root from which all sources are relative.
-
-* `sourcesContent`: Optional. An array of contents of the original source files.
-
-* `mappings`: A string of base64 VLQs which contain the actual mappings.
-
-* `file`: Optional. The generated filename this source map is associated with.
-
-#### SourceMapConsumer.prototype.computeColumnSpans()
-
-Compute the last column for each generated mapping. The last column is
-inclusive.
-
-#### SourceMapConsumer.prototype.originalPositionFor(generatedPosition)
-
-Returns the original source, line, and column information for the generated
-source's line and column positions provided. The only argument is an object with
-the following properties:
-
-* `line`: The line number in the generated source.
-
-* `column`: The column number in the generated source.
-
-and an object is returned with the following properties:
-
-* `source`: The original source file, or null if this information is not
-  available.
-
-* `line`: The line number in the original source, or null if this information is
-  not available.
-
-* `column`: The column number in the original source, or null or null if this
-  information is not available.
-
-* `name`: The original identifier, or null if this information is not available.
-
-#### SourceMapConsumer.prototype.generatedPositionFor(originalPosition)
-
-Returns the generated line and column information for the original source,
-line, and column positions provided. The only argument is an object with
-the following properties:
-
-* `source`: The filename of the original source.
-
-* `line`: The line number in the original source.
-
-* `column`: The column number in the original source.
-
-and an object is returned with the following properties:
-
-* `line`: The line number in the generated source, or null.
-
-* `column`: The column number in the generated source, or null.
-
-#### SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)
-
-Returns all generated line and column information for the original source
-and line provided. The only argument is an object with the following
-properties:
-
-* `source`: The filename of the original source.
-
-* `line`: The line number in the original source.
-
-and an array of objects is returned, each with the following properties:
-
-* `line`: The line number in the generated source, or null.
-
-* `column`: The column number in the generated source, or null.
-
-#### SourceMapConsumer.prototype.sourceContentFor(source)
-
-Returns the original source content for the source provided. The only
-argument is the URL of the original source file.
-
-#### SourceMapConsumer.prototype.eachMapping(callback, context, order)
-
-Iterate over each mapping between an original source/line/column and a
-generated line/column in this source map.
-
-* `callback`: The function that is called with each mapping. Mappings have the
-  form `{ source, generatedLine, generatedColumn, originalLine, originalColumn,
-  name }`
-
-* `context`: Optional. If specified, this object will be the value of `this`
-  every time that `callback` is called.
-
-* `order`: Either `SourceMapConsumer.GENERATED_ORDER` or
-  `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to iterate over
-  the mappings sorted by the generated file's line/column order or the
-  original's source/line/column order, respectively. Defaults to
-  `SourceMapConsumer.GENERATED_ORDER`.
-
-### SourceMapGenerator
-
-An instance of the SourceMapGenerator represents a source map which is being
-built incrementally.
-
-#### new SourceMapGenerator([startOfSourceMap])
-
-You may pass an object with the following properties:
-
-* `file`: The filename of the generated source that this source map is
-  associated with.
-
-* `sourceRoot`: A root for all relative URLs in this source map.
-
-* `skipValidation`: Optional. When `true`, disables validation of mappings as
-  they are added. This can improve performance but should be used with
-  discretion, as a last resort. Even then, one should avoid using this flag when
-  running tests, if possible.
-
-#### SourceMapGenerator.fromSourceMap(sourceMapConsumer)
-
-Creates a new SourceMapGenerator based on a SourceMapConsumer
-
-* `sourceMapConsumer` The SourceMap.
-
-#### SourceMapGenerator.prototype.addMapping(mapping)
-
-Add a single mapping from original source line and column to the generated
-source's line and column for this source map being created. The mapping object
-should have the following properties:
-
-* `generated`: An object with the generated line and column positions.
-
-* `original`: An object with the original line and column positions.
-
-* `source`: The original source file (relative to the sourceRoot).
-
-* `name`: An optional original token name for this mapping.
-
-#### SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)
-
-Set the source content for an original source file.
-
-* `sourceFile` the URL of the original source file.
-
-* `sourceContent` the content of the source file.
-
-#### SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]])
-
-Applies a SourceMap for a source file to the SourceMap.
-Each mapping to the supplied source file is rewritten using the
-supplied SourceMap. Note: The resolution for the resulting mappings
-is the minimium of this map and the supplied map.
-
-* `sourceMapConsumer`: The SourceMap to be applied.
-
-* `sourceFile`: Optional. The filename of the source file.
-  If omitted, sourceMapConsumer.file will be used, if it exists.
-  Otherwise an error will be thrown.
-
-* `sourceMapPath`: Optional. The dirname of the path to the SourceMap
-  to be applied. If relative, it is relative to the SourceMap.
-
-  This parameter is needed when the two SourceMaps aren't in the same
-  directory, and the SourceMap to be applied contains relative source
-  paths. If so, those relative source paths need to be rewritten
-  relative to the SourceMap.
-
-  If omitted, it is assumed that both SourceMaps are in the same directory,
-  thus not needing any rewriting. (Supplying `'.'` has the same effect.)
-
-#### SourceMapGenerator.prototype.toString()
-
-Renders the source map being generated to a string.
-
-### SourceNode
-
-SourceNodes provide a way to abstract over interpolating and/or concatenating
-snippets of generated JavaScript source code, while maintaining the line and
-column information associated between those snippets and the original source
-code. This is useful as the final intermediate representation a compiler might
-use before outputting the generated JS and source map.
-
-#### new SourceNode([line, column, source[, chunk[, name]]])
-
-* `line`: The original line number associated with this source node, or null if
-  it isn't associated with an original line.
-
-* `column`: The original column number associated with this source node, or null
-  if it isn't associated with an original column.
-
-* `source`: The original source's filename; null if no filename is provided.
-
-* `chunk`: Optional. Is immediately passed to `SourceNode.prototype.add`, see
-  below.
-
-* `name`: Optional. The original identifier.
-
-#### SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath])
-
-Creates a SourceNode from generated code and a SourceMapConsumer.
-
-* `code`: The generated code
-
-* `sourceMapConsumer` The SourceMap for the generated code
-
-* `relativePath` The optional path that relative sources in `sourceMapConsumer`
-  should be relative to.
-
-#### SourceNode.prototype.add(chunk)
-
-Add a chunk of generated JS to this source node.
-
-* `chunk`: A string snippet of generated JS code, another instance of
-   `SourceNode`, or an array where each member is one of those things.
-
-#### SourceNode.prototype.prepend(chunk)
-
-Prepend a chunk of generated JS to this source node.
-
-* `chunk`: A string snippet of generated JS code, another instance of
-   `SourceNode`, or an array where each member is one of those things.
-
-#### SourceNode.prototype.setSourceContent(sourceFile, sourceContent)
-
-Set the source content for a source file. This will be added to the
-`SourceMap` in the `sourcesContent` field.
-
-* `sourceFile`: The filename of the source file
-
-* `sourceContent`: The content of the source file
-
-#### SourceNode.prototype.walk(fn)
-
-Walk over the tree of JS snippets in this node and its children. The walking
-function is called once for each snippet of JS and is passed that snippet and
-the its original associated source's line/column location.
-
-* `fn`: The traversal function.
-
-#### SourceNode.prototype.walkSourceContents(fn)
-
-Walk over the tree of SourceNodes. The walking function is called for each
-source file content and is passed the filename and source content.
-
-* `fn`: The traversal function.
-
-#### SourceNode.prototype.join(sep)
-
-Like `Array.prototype.join` except for SourceNodes. Inserts the separator
-between each of this source node's children.
-
-* `sep`: The separator.
-
-#### SourceNode.prototype.replaceRight(pattern, replacement)
-
-Call `String.prototype.replace` on the very right-most source snippet. Useful
-for trimming whitespace from the end of a source node, etc.
-
-* `pattern`: The pattern to replace.
-
-* `replacement`: The thing to replace the pattern with.
-
-#### SourceNode.prototype.toString()
-
-Return the string representation of this source node. Walks over the tree and
-concatenates all the various snippets together to one string.
-
-#### SourceNode.prototype.toStringWithSourceMap([startOfSourceMap])
-
-Returns the string representation of this tree of source nodes, plus a
-SourceMapGenerator which contains all the mappings between the generated and
-original sources.
-
-The arguments are the same as those to `new SourceMapGenerator`.
-
-## Tests
-
-[![Build Status](https://travis-ci.org/mozilla/source-map.png?branch=master)](https://travis-ci.org/mozilla/source-map)
-
-Install NodeJS version 0.8.0 or greater, then run `node test/run-tests.js`.
-
-To add new tests, create a new file named `test/test-<your new test name>.js`
-and export your test functions with names that start with "test", for example
-
-    exports["test doing the foo bar"] = function (assert, util) {
-      ...
-    };
-
-The new test will be located automatically when you run the suite.
-
-The `util` argument is the test utility module located at `test/source-map/util`.
-
-The `assert` argument is a cut down version of node's assert module. You have
-access to the following assertion functions:
-
-* `doesNotThrow`
-
-* `equal`
-
-* `ok`
-
-* `strictEqual`
-
-* `throws`
-
-(The reason for the restricted set of test functions is because we need the
-tests to run inside Firefox's test suite as well and so the assert module is
-shimmed in that environment. See `build/assert-shim.js`.)
-
-[format]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit
-[feature]: https://wiki.mozilla.org/DevTools/Features/SourceMap
-[Dryice]: https://github.com/mozilla/dryice
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/assert-shim.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/assert-shim.js
deleted file mode 100644 (file)
index daa1a62..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-define('test/source-map/assert', ['exports'], function (exports) {
-
-  let do_throw = function (msg) {
-    throw new Error(msg);
-  };
-
-  exports.init = function (throw_fn) {
-    do_throw = throw_fn;
-  };
-
-  exports.doesNotThrow = function (fn) {
-    try {
-      fn();
-    }
-    catch (e) {
-      do_throw(e.message);
-    }
-  };
-
-  exports.equal = function (actual, expected, msg) {
-    msg = msg || String(actual) + ' != ' + String(expected);
-    if (actual != expected) {
-      do_throw(msg);
-    }
-  };
-
-  exports.ok = function (val, msg) {
-    msg = msg || String(val) + ' is falsey';
-    if (!Boolean(val)) {
-      do_throw(msg);
-    }
-  };
-
-  exports.strictEqual = function (actual, expected, msg) {
-    msg = msg || String(actual) + ' !== ' + String(expected);
-    if (actual !== expected) {
-      do_throw(msg);
-    }
-  };
-
-  exports.throws = function (fn) {
-    try {
-      fn();
-      do_throw('Expected an error to be thrown, but it wasn\'t.');
-    }
-    catch (e) {
-    }
-  };
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/mini-require.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/mini-require.js
deleted file mode 100644 (file)
index 0daf453..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-/**
- * Define a module along with a payload.
- * @param {string} moduleName Name for the payload
- * @param {ignored} deps Ignored. For compatibility with CommonJS AMD Spec
- * @param {function} payload Function with (require, exports, module) params
- */
-function define(moduleName, deps, payload) {
-  if (typeof moduleName != "string") {
-    throw new TypeError('Expected string, got: ' + moduleName);
-  }
-
-  if (arguments.length == 2) {
-    payload = deps;
-  }
-
-  if (moduleName in define.modules) {
-    throw new Error("Module already defined: " + moduleName);
-  }
-  define.modules[moduleName] = payload;
-};
-
-/**
- * The global store of un-instantiated modules
- */
-define.modules = {};
-
-
-/**
- * We invoke require() in the context of a Domain so we can have multiple
- * sets of modules running separate from each other.
- * This contrasts with JSMs which are singletons, Domains allows us to
- * optionally load a CommonJS module twice with separate data each time.
- * Perhaps you want 2 command lines with a different set of commands in each,
- * for example.
- */
-function Domain() {
-  this.modules = {};
-  this._currentModule = null;
-}
-
-(function () {
-
-  /**
-   * Lookup module names and resolve them by calling the definition function if
-   * needed.
-   * There are 2 ways to call this, either with an array of dependencies and a
-   * callback to call when the dependencies are found (which can happen
-   * asynchronously in an in-page context) or with a single string an no callback
-   * where the dependency is resolved synchronously and returned.
-   * The API is designed to be compatible with the CommonJS AMD spec and
-   * RequireJS.
-   * @param {string[]|string} deps A name, or names for the payload
-   * @param {function|undefined} callback Function to call when the dependencies
-   * are resolved
-   * @return {undefined|object} The module required or undefined for
-   * array/callback method
-   */
-  Domain.prototype.require = function(deps, callback) {
-    if (Array.isArray(deps)) {
-      var params = deps.map(function(dep) {
-        return this.lookup(dep);
-      }, this);
-      if (callback) {
-        callback.apply(null, params);
-      }
-      return undefined;
-    }
-    else {
-      return this.lookup(deps);
-    }
-  };
-
-  function normalize(path) {
-    var bits = path.split('/');
-    var i = 1;
-    while (i < bits.length) {
-      if (bits[i] === '..') {
-        bits.splice(i-1, 1);
-      } else if (bits[i] === '.') {
-        bits.splice(i, 1);
-      } else {
-        i++;
-      }
-    }
-    return bits.join('/');
-  }
-
-  function join(a, b) {
-    a = a.trim();
-    b = b.trim();
-    if (/^\//.test(b)) {
-      return b;
-    } else {
-      return a.replace(/\/*$/, '/') + b;
-    }
-  }
-
-  function dirname(path) {
-    var bits = path.split('/');
-    bits.pop();
-    return bits.join('/');
-  }
-
-  /**
-   * Lookup module names and resolve them by calling the definition function if
-   * needed.
-   * @param {string} moduleName A name for the payload to lookup
-   * @return {object} The module specified by aModuleName or null if not found.
-   */
-  Domain.prototype.lookup = function(moduleName) {
-    if (/^\./.test(moduleName)) {
-      moduleName = normalize(join(dirname(this._currentModule), moduleName));
-    }
-
-    if (moduleName in this.modules) {
-      var module = this.modules[moduleName];
-      return module;
-    }
-
-    if (!(moduleName in define.modules)) {
-      throw new Error("Module not defined: " + moduleName);
-    }
-
-    var module = define.modules[moduleName];
-
-    if (typeof module == "function") {
-      var exports = {};
-      var previousModule = this._currentModule;
-      this._currentModule = moduleName;
-      module(this.require.bind(this), exports, { id: moduleName, uri: "" });
-      this._currentModule = previousModule;
-      module = exports;
-    }
-
-    // cache the resulting module object for next time
-    this.modules[moduleName] = module;
-
-    return module;
-  };
-
-}());
-
-define.Domain = Domain;
-define.globalDomain = new Domain();
-var require = define.globalDomain.require.bind(define.globalDomain);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/prefix-source-map.jsm b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/prefix-source-map.jsm
deleted file mode 100644 (file)
index ee2539d..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-/*
- * WARNING!
- *
- * Do not edit this file directly, it is built from the sources at
- * https://github.com/mozilla/source-map/
- */
-
-///////////////////////////////////////////////////////////////////////////////
-
-
-this.EXPORTED_SYMBOLS = [ "SourceMapConsumer", "SourceMapGenerator", "SourceNode" ];
-
-Components.utils.import('resource://gre/modules/devtools/Require.jsm');
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/prefix-utils.jsm b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/prefix-utils.jsm
deleted file mode 100644 (file)
index 80341d4..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-/*
- * WARNING!
- *
- * Do not edit this file directly, it is built from the sources at
- * https://github.com/mozilla/source-map/
- */
-
-Components.utils.import('resource://gre/modules/devtools/Require.jsm');
-Components.utils.import('resource://gre/modules/devtools/SourceMap.jsm');
-
-this.EXPORTED_SYMBOLS = [ "define", "runSourceMapTests" ];
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/suffix-browser.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/suffix-browser.js
deleted file mode 100644 (file)
index fb29ff5..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-///////////////////////////////////////////////////////////////////////////////
-
-this.sourceMap = {
-  SourceMapConsumer: require('source-map/source-map-consumer').SourceMapConsumer,
-  SourceMapGenerator: require('source-map/source-map-generator').SourceMapGenerator,
-  SourceNode: require('source-map/source-node').SourceNode
-};
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/suffix-source-map.jsm b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/suffix-source-map.jsm
deleted file mode 100644 (file)
index cf3c2d8..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-///////////////////////////////////////////////////////////////////////////////
-
-this.SourceMapConsumer = require('source-map/source-map-consumer').SourceMapConsumer;
-this.SourceMapGenerator = require('source-map/source-map-generator').SourceMapGenerator;
-this.SourceNode = require('source-map/source-node').SourceNode;
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/suffix-utils.jsm b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/suffix-utils.jsm
deleted file mode 100644 (file)
index b31b84c..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-function runSourceMapTests(modName, do_throw) {
-  let mod = require(modName);
-  let assert = require('test/source-map/assert');
-  let util = require('test/source-map/util');
-
-  assert.init(do_throw);
-
-  for (let k in mod) {
-    if (/^test/.test(k)) {
-      mod[k](assert, util);
-    }
-  }
-
-}
-this.runSourceMapTests = runSourceMapTests;
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/test-prefix.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/test-prefix.js
deleted file mode 100644 (file)
index 1b13f30..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * WARNING!
- *
- * Do not edit this file directly, it is built from the sources at
- * https://github.com/mozilla/source-map/
- */
-
-Components.utils.import('resource://test/Utils.jsm');
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/test-suffix.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/test-suffix.js
deleted file mode 100644 (file)
index bec2de3..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-function run_test() {
-  runSourceMapTests('{THIS_MODULE}', do_throw);
-}
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map.js
deleted file mode 100644 (file)
index 121ad24..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright 2009-2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE.txt or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-exports.SourceMapGenerator = require('./source-map/source-map-generator').SourceMapGenerator;
-exports.SourceMapConsumer = require('./source-map/source-map-consumer').SourceMapConsumer;
-exports.SourceNode = require('./source-map/source-node').SourceNode;
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/array-set.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/array-set.js
deleted file mode 100644 (file)
index 40f9a18..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var util = require('./util');
-
-  /**
-   * A data structure which is a combination of an array and a set. Adding a new
-   * member is O(1), testing for membership is O(1), and finding the index of an
-   * element is O(1). Removing elements from the set is not supported. Only
-   * strings are supported for membership.
-   */
-  function ArraySet() {
-    this._array = [];
-    this._set = {};
-  }
-
-  /**
-   * Static method for creating ArraySet instances from an existing array.
-   */
-  ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {
-    var set = new ArraySet();
-    for (var i = 0, len = aArray.length; i < len; i++) {
-      set.add(aArray[i], aAllowDuplicates);
-    }
-    return set;
-  };
-
-  /**
-   * Add the given string to this set.
-   *
-   * @param String aStr
-   */
-  ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {
-    var isDuplicate = this.has(aStr);
-    var idx = this._array.length;
-    if (!isDuplicate || aAllowDuplicates) {
-      this._array.push(aStr);
-    }
-    if (!isDuplicate) {
-      this._set[util.toSetString(aStr)] = idx;
-    }
-  };
-
-  /**
-   * Is the given string a member of this set?
-   *
-   * @param String aStr
-   */
-  ArraySet.prototype.has = function ArraySet_has(aStr) {
-    return Object.prototype.hasOwnProperty.call(this._set,
-                                                util.toSetString(aStr));
-  };
-
-  /**
-   * What is the index of the given string in the array?
-   *
-   * @param String aStr
-   */
-  ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {
-    if (this.has(aStr)) {
-      return this._set[util.toSetString(aStr)];
-    }
-    throw new Error('"' + aStr + '" is not in the set.');
-  };
-
-  /**
-   * What is the element at the given index?
-   *
-   * @param Number aIdx
-   */
-  ArraySet.prototype.at = function ArraySet_at(aIdx) {
-    if (aIdx >= 0 && aIdx < this._array.length) {
-      return this._array[aIdx];
-    }
-    throw new Error('No element indexed by ' + aIdx);
-  };
-
-  /**
-   * Returns the array representation of this set (which has the proper indices
-   * indicated by indexOf). Note that this is a copy of the internal array used
-   * for storing the members so that no one can mess with internal state.
-   */
-  ArraySet.prototype.toArray = function ArraySet_toArray() {
-    return this._array.slice();
-  };
-
-  exports.ArraySet = ArraySet;
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/base64-vlq.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/base64-vlq.js
deleted file mode 100644 (file)
index e22dcae..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- *
- * Based on the Base 64 VLQ implementation in Closure Compiler:
- * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
- *
- * Copyright 2011 The Closure Compiler Authors. All rights reserved.
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above
- *    copyright notice, this list of conditions and the following
- *    disclaimer in the documentation and/or other materials provided
- *    with the distribution.
- *  * Neither the name of Google Inc. nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var base64 = require('./base64');
-
-  // A single base 64 digit can contain 6 bits of data. For the base 64 variable
-  // length quantities we use in the source map spec, the first bit is the sign,
-  // the next four bits are the actual value, and the 6th bit is the
-  // continuation bit. The continuation bit tells us whether there are more
-  // digits in this value following this digit.
-  //
-  //   Continuation
-  //   |    Sign
-  //   |    |
-  //   V    V
-  //   101011
-
-  var VLQ_BASE_SHIFT = 5;
-
-  // binary: 100000
-  var VLQ_BASE = 1 << VLQ_BASE_SHIFT;
-
-  // binary: 011111
-  var VLQ_BASE_MASK = VLQ_BASE - 1;
-
-  // binary: 100000
-  var VLQ_CONTINUATION_BIT = VLQ_BASE;
-
-  /**
-   * Converts from a two-complement value to a value where the sign bit is
-   * placed in the least significant bit.  For example, as decimals:
-   *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)
-   *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)
-   */
-  function toVLQSigned(aValue) {
-    return aValue < 0
-      ? ((-aValue) << 1) + 1
-      : (aValue << 1) + 0;
-  }
-
-  /**
-   * Converts to a two-complement value from a value where the sign bit is
-   * placed in the least significant bit.  For example, as decimals:
-   *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1
-   *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2
-   */
-  function fromVLQSigned(aValue) {
-    var isNegative = (aValue & 1) === 1;
-    var shifted = aValue >> 1;
-    return isNegative
-      ? -shifted
-      : shifted;
-  }
-
-  /**
-   * Returns the base 64 VLQ encoded value.
-   */
-  exports.encode = function base64VLQ_encode(aValue) {
-    var encoded = "";
-    var digit;
-
-    var vlq = toVLQSigned(aValue);
-
-    do {
-      digit = vlq & VLQ_BASE_MASK;
-      vlq >>>= VLQ_BASE_SHIFT;
-      if (vlq > 0) {
-        // There are still more digits in this value, so we must make sure the
-        // continuation bit is marked.
-        digit |= VLQ_CONTINUATION_BIT;
-      }
-      encoded += base64.encode(digit);
-    } while (vlq > 0);
-
-    return encoded;
-  };
-
-  /**
-   * Decodes the next base 64 VLQ value from the given string and returns the
-   * value and the rest of the string via the out parameter.
-   */
-  exports.decode = function base64VLQ_decode(aStr, aOutParam) {
-    var i = 0;
-    var strLen = aStr.length;
-    var result = 0;
-    var shift = 0;
-    var continuation, digit;
-
-    do {
-      if (i >= strLen) {
-        throw new Error("Expected more digits in base 64 VLQ value.");
-      }
-      digit = base64.decode(aStr.charAt(i++));
-      continuation = !!(digit & VLQ_CONTINUATION_BIT);
-      digit &= VLQ_BASE_MASK;
-      result = result + (digit << shift);
-      shift += VLQ_BASE_SHIFT;
-    } while (continuation);
-
-    aOutParam.value = fromVLQSigned(result);
-    aOutParam.rest = aStr.slice(i);
-  };
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/base64.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/base64.js
deleted file mode 100644 (file)
index 863cc46..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var charToIntMap = {};
-  var intToCharMap = {};
-
-  'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
-    .split('')
-    .forEach(function (ch, index) {
-      charToIntMap[ch] = index;
-      intToCharMap[index] = ch;
-    });
-
-  /**
-   * Encode an integer in the range of 0 to 63 to a single base 64 digit.
-   */
-  exports.encode = function base64_encode(aNumber) {
-    if (aNumber in intToCharMap) {
-      return intToCharMap[aNumber];
-    }
-    throw new TypeError("Must be between 0 and 63: " + aNumber);
-  };
-
-  /**
-   * Decode a single base 64 digit to an integer.
-   */
-  exports.decode = function base64_decode(aChar) {
-    if (aChar in charToIntMap) {
-      return charToIntMap[aChar];
-    }
-    throw new TypeError("Not a valid base 64 digit: " + aChar);
-  };
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/binary-search.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/binary-search.js
deleted file mode 100644 (file)
index e085f81..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  /**
-   * Recursive implementation of binary search.
-   *
-   * @param aLow Indices here and lower do not contain the needle.
-   * @param aHigh Indices here and higher do not contain the needle.
-   * @param aNeedle The element being searched for.
-   * @param aHaystack The non-empty array being searched.
-   * @param aCompare Function which takes two elements and returns -1, 0, or 1.
-   */
-  function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare) {
-    // This function terminates when one of the following is true:
-    //
-    //   1. We find the exact element we are looking for.
-    //
-    //   2. We did not find the exact element, but we can return the index of
-    //      the next closest element that is less than that element.
-    //
-    //   3. We did not find the exact element, and there is no next-closest
-    //      element which is less than the one we are searching for, so we
-    //      return -1.
-    var mid = Math.floor((aHigh - aLow) / 2) + aLow;
-    var cmp = aCompare(aNeedle, aHaystack[mid], true);
-    if (cmp === 0) {
-      // Found the element we are looking for.
-      return mid;
-    }
-    else if (cmp > 0) {
-      // aHaystack[mid] is greater than our needle.
-      if (aHigh - mid > 1) {
-        // The element is in the upper half.
-        return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare);
-      }
-      // We did not find an exact match, return the next closest one
-      // (termination case 2).
-      return mid;
-    }
-    else {
-      // aHaystack[mid] is less than our needle.
-      if (mid - aLow > 1) {
-        // The element is in the lower half.
-        return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare);
-      }
-      // The exact needle element was not found in this haystack. Determine if
-      // we are in termination case (2) or (3) and return the appropriate thing.
-      return aLow < 0 ? -1 : aLow;
-    }
-  }
-
-  /**
-   * This is an implementation of binary search which will always try and return
-   * the index of next lowest value checked if there is no exact hit. This is
-   * because mappings between original and generated line/col pairs are single
-   * points, and there is an implicit region between each of them, so a miss
-   * just means that you aren't on the very start of a region.
-   *
-   * @param aNeedle The element you are looking for.
-   * @param aHaystack The array that is being searched.
-   * @param aCompare A function which takes the needle and an element in the
-   *     array and returns -1, 0, or 1 depending on whether the needle is less
-   *     than, equal to, or greater than the element, respectively.
-   */
-  exports.search = function search(aNeedle, aHaystack, aCompare) {
-    if (aHaystack.length === 0) {
-      return -1;
-    }
-    return recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, aCompare)
-  };
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/mapping-list.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/mapping-list.js
deleted file mode 100644 (file)
index 2a4eb61..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2014 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var util = require('./util');
-
-  /**
-   * Determine whether mappingB is after mappingA with respect to generated
-   * position.
-   */
-  function generatedPositionAfter(mappingA, mappingB) {
-    // Optimized for most common case
-    var lineA = mappingA.generatedLine;
-    var lineB = mappingB.generatedLine;
-    var columnA = mappingA.generatedColumn;
-    var columnB = mappingB.generatedColumn;
-    return lineB > lineA || lineB == lineA && columnB >= columnA ||
-           util.compareByGeneratedPositions(mappingA, mappingB) <= 0;
-  }
-
-  /**
-   * A data structure to provide a sorted view of accumulated mappings in a
-   * performance conscious manner. It trades a neglibable overhead in general
-   * case for a large speedup in case of mappings being added in order.
-   */
-  function MappingList() {
-    this._array = [];
-    this._sorted = true;
-    // Serves as infimum
-    this._last = {generatedLine: -1, generatedColumn: 0};
-  }
-
-  /**
-   * Iterate through internal items. This method takes the same arguments that
-   * `Array.prototype.forEach` takes.
-   *
-   * NOTE: The order of the mappings is NOT guaranteed.
-   */
-  MappingList.prototype.unsortedForEach =
-    function MappingList_forEach(aCallback, aThisArg) {
-      this._array.forEach(aCallback, aThisArg);
-    };
-
-  /**
-   * Add the given source mapping.
-   *
-   * @param Object aMapping
-   */
-  MappingList.prototype.add = function MappingList_add(aMapping) {
-    var mapping;
-    if (generatedPositionAfter(this._last, aMapping)) {
-      this._last = aMapping;
-      this._array.push(aMapping);
-    } else {
-      this._sorted = false;
-      this._array.push(aMapping);
-    }
-  };
-
-  /**
-   * Returns the flat, sorted array of mappings. The mappings are sorted by
-   * generated position.
-   *
-   * WARNING: This method returns internal data without copying, for
-   * performance. The return value must NOT be mutated, and should be treated as
-   * an immutable borrow. If you want to take ownership, you must make your own
-   * copy.
-   */
-  MappingList.prototype.toArray = function MappingList_toArray() {
-    if (!this._sorted) {
-      this._array.sort(util.compareByGeneratedPositions);
-      this._sorted = true;
-    }
-    return this._array;
-  };
-
-  exports.MappingList = MappingList;
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/source-map-consumer.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/source-map-consumer.js
deleted file mode 100644 (file)
index cfaa299..0000000
+++ /dev/null
@@ -1,575 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var util = require('./util');
-  var binarySearch = require('./binary-search');
-  var ArraySet = require('./array-set').ArraySet;
-  var base64VLQ = require('./base64-vlq');
-
-  /**
-   * A SourceMapConsumer instance represents a parsed source map which we can
-   * query for information about the original file positions by giving it a file
-   * position in the generated source.
-   *
-   * The only parameter is the raw source map (either as a JSON string, or
-   * already parsed to an object). According to the spec, source maps have the
-   * following attributes:
-   *
-   *   - version: Which version of the source map spec this map is following.
-   *   - sources: An array of URLs to the original source files.
-   *   - names: An array of identifiers which can be referrenced by individual mappings.
-   *   - sourceRoot: Optional. The URL root from which all sources are relative.
-   *   - sourcesContent: Optional. An array of contents of the original source files.
-   *   - mappings: A string of base64 VLQs which contain the actual mappings.
-   *   - file: Optional. The generated file this source map is associated with.
-   *
-   * Here is an example source map, taken from the source map spec[0]:
-   *
-   *     {
-   *       version : 3,
-   *       file: "out.js",
-   *       sourceRoot : "",
-   *       sources: ["foo.js", "bar.js"],
-   *       names: ["src", "maps", "are", "fun"],
-   *       mappings: "AA,AB;;ABCDE;"
-   *     }
-   *
-   * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#
-   */
-  function SourceMapConsumer(aSourceMap) {
-    var sourceMap = aSourceMap;
-    if (typeof aSourceMap === 'string') {
-      sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
-    }
-
-    var version = util.getArg(sourceMap, 'version');
-    var sources = util.getArg(sourceMap, 'sources');
-    // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which
-    // requires the array) to play nice here.
-    var names = util.getArg(sourceMap, 'names', []);
-    var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);
-    var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);
-    var mappings = util.getArg(sourceMap, 'mappings');
-    var file = util.getArg(sourceMap, 'file', null);
-
-    // Once again, Sass deviates from the spec and supplies the version as a
-    // string rather than a number, so we use loose equality checking here.
-    if (version != this._version) {
-      throw new Error('Unsupported version: ' + version);
-    }
-
-    // Some source maps produce relative source paths like "./foo.js" instead of
-    // "foo.js".  Normalize these first so that future comparisons will succeed.
-    // See bugzil.la/1090768.
-    sources = sources.map(util.normalize);
-
-    // Pass `true` below to allow duplicate names and sources. While source maps
-    // are intended to be compressed and deduplicated, the TypeScript compiler
-    // sometimes generates source maps with duplicates in them. See Github issue
-    // #72 and bugzil.la/889492.
-    this._names = ArraySet.fromArray(names, true);
-    this._sources = ArraySet.fromArray(sources, true);
-
-    this.sourceRoot = sourceRoot;
-    this.sourcesContent = sourcesContent;
-    this._mappings = mappings;
-    this.file = file;
-  }
-
-  /**
-   * Create a SourceMapConsumer from a SourceMapGenerator.
-   *
-   * @param SourceMapGenerator aSourceMap
-   *        The source map that will be consumed.
-   * @returns SourceMapConsumer
-   */
-  SourceMapConsumer.fromSourceMap =
-    function SourceMapConsumer_fromSourceMap(aSourceMap) {
-      var smc = Object.create(SourceMapConsumer.prototype);
-
-      smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
-      smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
-      smc.sourceRoot = aSourceMap._sourceRoot;
-      smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),
-                                                              smc.sourceRoot);
-      smc.file = aSourceMap._file;
-
-      smc.__generatedMappings = aSourceMap._mappings.toArray().slice();
-      smc.__originalMappings = aSourceMap._mappings.toArray().slice()
-        .sort(util.compareByOriginalPositions);
-
-      return smc;
-    };
-
-  /**
-   * The version of the source mapping spec that we are consuming.
-   */
-  SourceMapConsumer.prototype._version = 3;
-
-  /**
-   * The list of original sources.
-   */
-  Object.defineProperty(SourceMapConsumer.prototype, 'sources', {
-    get: function () {
-      return this._sources.toArray().map(function (s) {
-        return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;
-      }, this);
-    }
-  });
-
-  // `__generatedMappings` and `__originalMappings` are arrays that hold the
-  // parsed mapping coordinates from the source map's "mappings" attribute. They
-  // are lazily instantiated, accessed via the `_generatedMappings` and
-  // `_originalMappings` getters respectively, and we only parse the mappings
-  // and create these arrays once queried for a source location. We jump through
-  // these hoops because there can be many thousands of mappings, and parsing
-  // them is expensive, so we only want to do it if we must.
-  //
-  // Each object in the arrays is of the form:
-  //
-  //     {
-  //       generatedLine: The line number in the generated code,
-  //       generatedColumn: The column number in the generated code,
-  //       source: The path to the original source file that generated this
-  //               chunk of code,
-  //       originalLine: The line number in the original source that
-  //                     corresponds to this chunk of generated code,
-  //       originalColumn: The column number in the original source that
-  //                       corresponds to this chunk of generated code,
-  //       name: The name of the original symbol which generated this chunk of
-  //             code.
-  //     }
-  //
-  // All properties except for `generatedLine` and `generatedColumn` can be
-  // `null`.
-  //
-  // `_generatedMappings` is ordered by the generated positions.
-  //
-  // `_originalMappings` is ordered by the original positions.
-
-  SourceMapConsumer.prototype.__generatedMappings = null;
-  Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {
-    get: function () {
-      if (!this.__generatedMappings) {
-        this.__generatedMappings = [];
-        this.__originalMappings = [];
-        this._parseMappings(this._mappings, this.sourceRoot);
-      }
-
-      return this.__generatedMappings;
-    }
-  });
-
-  SourceMapConsumer.prototype.__originalMappings = null;
-  Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {
-    get: function () {
-      if (!this.__originalMappings) {
-        this.__generatedMappings = [];
-        this.__originalMappings = [];
-        this._parseMappings(this._mappings, this.sourceRoot);
-      }
-
-      return this.__originalMappings;
-    }
-  });
-
-  SourceMapConsumer.prototype._nextCharIsMappingSeparator =
-    function SourceMapConsumer_nextCharIsMappingSeparator(aStr) {
-      var c = aStr.charAt(0);
-      return c === ";" || c === ",";
-    };
-
-  /**
-   * Parse the mappings in a string in to a data structure which we can easily
-   * query (the ordered arrays in the `this.__generatedMappings` and
-   * `this.__originalMappings` properties).
-   */
-  SourceMapConsumer.prototype._parseMappings =
-    function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-      var generatedLine = 1;
-      var previousGeneratedColumn = 0;
-      var previousOriginalLine = 0;
-      var previousOriginalColumn = 0;
-      var previousSource = 0;
-      var previousName = 0;
-      var str = aStr;
-      var temp = {};
-      var mapping;
-
-      while (str.length > 0) {
-        if (str.charAt(0) === ';') {
-          generatedLine++;
-          str = str.slice(1);
-          previousGeneratedColumn = 0;
-        }
-        else if (str.charAt(0) === ',') {
-          str = str.slice(1);
-        }
-        else {
-          mapping = {};
-          mapping.generatedLine = generatedLine;
-
-          // Generated column.
-          base64VLQ.decode(str, temp);
-          mapping.generatedColumn = previousGeneratedColumn + temp.value;
-          previousGeneratedColumn = mapping.generatedColumn;
-          str = temp.rest;
-
-          if (str.length > 0 && !this._nextCharIsMappingSeparator(str)) {
-            // Original source.
-            base64VLQ.decode(str, temp);
-            mapping.source = this._sources.at(previousSource + temp.value);
-            previousSource += temp.value;
-            str = temp.rest;
-            if (str.length === 0 || this._nextCharIsMappingSeparator(str)) {
-              throw new Error('Found a source, but no line and column');
-            }
-
-            // Original line.
-            base64VLQ.decode(str, temp);
-            mapping.originalLine = previousOriginalLine + temp.value;
-            previousOriginalLine = mapping.originalLine;
-            // Lines are stored 0-based
-            mapping.originalLine += 1;
-            str = temp.rest;
-            if (str.length === 0 || this._nextCharIsMappingSeparator(str)) {
-              throw new Error('Found a source and line, but no column');
-            }
-
-            // Original column.
-            base64VLQ.decode(str, temp);
-            mapping.originalColumn = previousOriginalColumn + temp.value;
-            previousOriginalColumn = mapping.originalColumn;
-            str = temp.rest;
-
-            if (str.length > 0 && !this._nextCharIsMappingSeparator(str)) {
-              // Original name.
-              base64VLQ.decode(str, temp);
-              mapping.name = this._names.at(previousName + temp.value);
-              previousName += temp.value;
-              str = temp.rest;
-            }
-          }
-
-          this.__generatedMappings.push(mapping);
-          if (typeof mapping.originalLine === 'number') {
-            this.__originalMappings.push(mapping);
-          }
-        }
-      }
-
-      this.__generatedMappings.sort(util.compareByGeneratedPositions);
-      this.__originalMappings.sort(util.compareByOriginalPositions);
-    };
-
-  /**
-   * Find the mapping that best matches the hypothetical "needle" mapping that
-   * we are searching for in the given "haystack" of mappings.
-   */
-  SourceMapConsumer.prototype._findMapping =
-    function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,
-                                           aColumnName, aComparator) {
-      // To return the position we are searching for, we must first find the
-      // mapping for the given position and then return the opposite position it
-      // points to. Because the mappings are sorted, we can use binary search to
-      // find the best mapping.
-
-      if (aNeedle[aLineName] <= 0) {
-        throw new TypeError('Line must be greater than or equal to 1, got '
-                            + aNeedle[aLineName]);
-      }
-      if (aNeedle[aColumnName] < 0) {
-        throw new TypeError('Column must be greater than or equal to 0, got '
-                            + aNeedle[aColumnName]);
-      }
-
-      return binarySearch.search(aNeedle, aMappings, aComparator);
-    };
-
-  /**
-   * Compute the last column for each generated mapping. The last column is
-   * inclusive.
-   */
-  SourceMapConsumer.prototype.computeColumnSpans =
-    function SourceMapConsumer_computeColumnSpans() {
-      for (var index = 0; index < this._generatedMappings.length; ++index) {
-        var mapping = this._generatedMappings[index];
-
-        // Mappings do not contain a field for the last generated columnt. We
-        // can come up with an optimistic estimate, however, by assuming that
-        // mappings are contiguous (i.e. given two consecutive mappings, the
-        // first mapping ends where the second one starts).
-        if (index + 1 < this._generatedMappings.length) {
-          var nextMapping = this._generatedMappings[index + 1];
-
-          if (mapping.generatedLine === nextMapping.generatedLine) {
-            mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;
-            continue;
-          }
-        }
-
-        // The last mapping for each line spans the entire line.
-        mapping.lastGeneratedColumn = Infinity;
-      }
-    };
-
-  /**
-   * Returns the original source, line, and column information for the generated
-   * source's line and column positions provided. The only argument is an object
-   * with the following properties:
-   *
-   *   - line: The line number in the generated source.
-   *   - column: The column number in the generated source.
-   *
-   * and an object is returned with the following properties:
-   *
-   *   - source: The original source file, or null.
-   *   - line: The line number in the original source, or null.
-   *   - column: The column number in the original source, or null.
-   *   - name: The original identifier, or null.
-   */
-  SourceMapConsumer.prototype.originalPositionFor =
-    function SourceMapConsumer_originalPositionFor(aArgs) {
-      var needle = {
-        generatedLine: util.getArg(aArgs, 'line'),
-        generatedColumn: util.getArg(aArgs, 'column')
-      };
-
-      var index = this._findMapping(needle,
-                                    this._generatedMappings,
-                                    "generatedLine",
-                                    "generatedColumn",
-                                    util.compareByGeneratedPositions);
-
-      if (index >= 0) {
-        var mapping = this._generatedMappings[index];
-
-        if (mapping.generatedLine === needle.generatedLine) {
-          var source = util.getArg(mapping, 'source', null);
-          if (source != null && this.sourceRoot != null) {
-            source = util.join(this.sourceRoot, source);
-          }
-          return {
-            source: source,
-            line: util.getArg(mapping, 'originalLine', null),
-            column: util.getArg(mapping, 'originalColumn', null),
-            name: util.getArg(mapping, 'name', null)
-          };
-        }
-      }
-
-      return {
-        source: null,
-        line: null,
-        column: null,
-        name: null
-      };
-    };
-
-  /**
-   * Returns the original source content. The only argument is the url of the
-   * original source file. Returns null if no original source content is
-   * availible.
-   */
-  SourceMapConsumer.prototype.sourceContentFor =
-    function SourceMapConsumer_sourceContentFor(aSource) {
-      if (!this.sourcesContent) {
-        return null;
-      }
-
-      if (this.sourceRoot != null) {
-        aSource = util.relative(this.sourceRoot, aSource);
-      }
-
-      if (this._sources.has(aSource)) {
-        return this.sourcesContent[this._sources.indexOf(aSource)];
-      }
-
-      var url;
-      if (this.sourceRoot != null
-          && (url = util.urlParse(this.sourceRoot))) {
-        // XXX: file:// URIs and absolute paths lead to unexpected behavior for
-        // many users. We can help them out when they expect file:// URIs to
-        // behave like it would if they were running a local HTTP server. See
-        // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.
-        var fileUriAbsPath = aSource.replace(/^file:\/\//, "");
-        if (url.scheme == "file"
-            && this._sources.has(fileUriAbsPath)) {
-          return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]
-        }
-
-        if ((!url.path || url.path == "/")
-            && this._sources.has("/" + aSource)) {
-          return this.sourcesContent[this._sources.indexOf("/" + aSource)];
-        }
-      }
-
-      throw new Error('"' + aSource + '" is not in the SourceMap.');
-    };
-
-  /**
-   * Returns the generated line and column information for the original source,
-   * line, and column positions provided. The only argument is an object with
-   * the following properties:
-   *
-   *   - source: The filename of the original source.
-   *   - line: The line number in the original source.
-   *   - column: The column number in the original source.
-   *
-   * and an object is returned with the following properties:
-   *
-   *   - line: The line number in the generated source, or null.
-   *   - column: The column number in the generated source, or null.
-   */
-  SourceMapConsumer.prototype.generatedPositionFor =
-    function SourceMapConsumer_generatedPositionFor(aArgs) {
-      var needle = {
-        source: util.getArg(aArgs, 'source'),
-        originalLine: util.getArg(aArgs, 'line'),
-        originalColumn: util.getArg(aArgs, 'column')
-      };
-
-      if (this.sourceRoot != null) {
-        needle.source = util.relative(this.sourceRoot, needle.source);
-      }
-
-      var index = this._findMapping(needle,
-                                    this._originalMappings,
-                                    "originalLine",
-                                    "originalColumn",
-                                    util.compareByOriginalPositions);
-
-      if (index >= 0) {
-        var mapping = this._originalMappings[index];
-
-        return {
-          line: util.getArg(mapping, 'generatedLine', null),
-          column: util.getArg(mapping, 'generatedColumn', null),
-          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-        };
-      }
-
-      return {
-        line: null,
-        column: null,
-        lastColumn: null
-      };
-    };
-
-  /**
-   * Returns all generated line and column information for the original source
-   * and line provided. The only argument is an object with the following
-   * properties:
-   *
-   *   - source: The filename of the original source.
-   *   - line: The line number in the original source.
-   *
-   * and an array of objects is returned, each with the following properties:
-   *
-   *   - line: The line number in the generated source, or null.
-   *   - column: The column number in the generated source, or null.
-   */
-  SourceMapConsumer.prototype.allGeneratedPositionsFor =
-    function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
-      // When there is no exact match, SourceMapConsumer.prototype._findMapping
-      // returns the index of the closest mapping less than the needle. By
-      // setting needle.originalColumn to Infinity, we thus find the last
-      // mapping for the given line, provided such a mapping exists.
-      var needle = {
-        source: util.getArg(aArgs, 'source'),
-        originalLine: util.getArg(aArgs, 'line'),
-        originalColumn: Infinity
-      };
-
-      if (this.sourceRoot != null) {
-        needle.source = util.relative(this.sourceRoot, needle.source);
-      }
-
-      var mappings = [];
-
-      var index = this._findMapping(needle,
-                                    this._originalMappings,
-                                    "originalLine",
-                                    "originalColumn",
-                                    util.compareByOriginalPositions);
-      if (index >= 0) {
-        var mapping = this._originalMappings[index];
-
-        while (mapping && mapping.originalLine === needle.originalLine) {
-          mappings.push({
-            line: util.getArg(mapping, 'generatedLine', null),
-            column: util.getArg(mapping, 'generatedColumn', null),
-            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-          });
-
-          mapping = this._originalMappings[--index];
-        }
-      }
-
-      return mappings.reverse();
-    };
-
-  SourceMapConsumer.GENERATED_ORDER = 1;
-  SourceMapConsumer.ORIGINAL_ORDER = 2;
-
-  /**
-   * Iterate over each mapping between an original source/line/column and a
-   * generated line/column in this source map.
-   *
-   * @param Function aCallback
-   *        The function that is called with each mapping.
-   * @param Object aContext
-   *        Optional. If specified, this object will be the value of `this` every
-   *        time that `aCallback` is called.
-   * @param aOrder
-   *        Either `SourceMapConsumer.GENERATED_ORDER` or
-   *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to
-   *        iterate over the mappings sorted by the generated file's line/column
-   *        order or the original's source/line/column order, respectively. Defaults to
-   *        `SourceMapConsumer.GENERATED_ORDER`.
-   */
-  SourceMapConsumer.prototype.eachMapping =
-    function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {
-      var context = aContext || null;
-      var order = aOrder || SourceMapConsumer.GENERATED_ORDER;
-
-      var mappings;
-      switch (order) {
-      case SourceMapConsumer.GENERATED_ORDER:
-        mappings = this._generatedMappings;
-        break;
-      case SourceMapConsumer.ORIGINAL_ORDER:
-        mappings = this._originalMappings;
-        break;
-      default:
-        throw new Error("Unknown order of iteration.");
-      }
-
-      var sourceRoot = this.sourceRoot;
-      mappings.map(function (mapping) {
-        var source = mapping.source;
-        if (source != null && sourceRoot != null) {
-          source = util.join(sourceRoot, source);
-        }
-        return {
-          source: source,
-          generatedLine: mapping.generatedLine,
-          generatedColumn: mapping.generatedColumn,
-          originalLine: mapping.originalLine,
-          originalColumn: mapping.originalColumn,
-          name: mapping.name
-        };
-      }).forEach(aCallback, context);
-    };
-
-  exports.SourceMapConsumer = SourceMapConsumer;
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/source-map-generator.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/source-map-generator.js
deleted file mode 100644 (file)
index 1ab7a47..0000000
+++ /dev/null
@@ -1,400 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var base64VLQ = require('./base64-vlq');
-  var util = require('./util');
-  var ArraySet = require('./array-set').ArraySet;
-  var MappingList = require('./mapping-list').MappingList;
-
-  /**
-   * An instance of the SourceMapGenerator represents a source map which is
-   * being built incrementally. You may pass an object with the following
-   * properties:
-   *
-   *   - file: The filename of the generated source.
-   *   - sourceRoot: A root for all relative URLs in this source map.
-   */
-  function SourceMapGenerator(aArgs) {
-    if (!aArgs) {
-      aArgs = {};
-    }
-    this._file = util.getArg(aArgs, 'file', null);
-    this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);
-    this._skipValidation = util.getArg(aArgs, 'skipValidation', false);
-    this._sources = new ArraySet();
-    this._names = new ArraySet();
-    this._mappings = new MappingList();
-    this._sourcesContents = null;
-  }
-
-  SourceMapGenerator.prototype._version = 3;
-
-  /**
-   * Creates a new SourceMapGenerator based on a SourceMapConsumer
-   *
-   * @param aSourceMapConsumer The SourceMap.
-   */
-  SourceMapGenerator.fromSourceMap =
-    function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {
-      var sourceRoot = aSourceMapConsumer.sourceRoot;
-      var generator = new SourceMapGenerator({
-        file: aSourceMapConsumer.file,
-        sourceRoot: sourceRoot
-      });
-      aSourceMapConsumer.eachMapping(function (mapping) {
-        var newMapping = {
-          generated: {
-            line: mapping.generatedLine,
-            column: mapping.generatedColumn
-          }
-        };
-
-        if (mapping.source != null) {
-          newMapping.source = mapping.source;
-          if (sourceRoot != null) {
-            newMapping.source = util.relative(sourceRoot, newMapping.source);
-          }
-
-          newMapping.original = {
-            line: mapping.originalLine,
-            column: mapping.originalColumn
-          };
-
-          if (mapping.name != null) {
-            newMapping.name = mapping.name;
-          }
-        }
-
-        generator.addMapping(newMapping);
-      });
-      aSourceMapConsumer.sources.forEach(function (sourceFile) {
-        var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-        if (content != null) {
-          generator.setSourceContent(sourceFile, content);
-        }
-      });
-      return generator;
-    };
-
-  /**
-   * Add a single mapping from original source line and column to the generated
-   * source's line and column for this source map being created. The mapping
-   * object should have the following properties:
-   *
-   *   - generated: An object with the generated line and column positions.
-   *   - original: An object with the original line and column positions.
-   *   - source: The original source file (relative to the sourceRoot).
-   *   - name: An optional original token name for this mapping.
-   */
-  SourceMapGenerator.prototype.addMapping =
-    function SourceMapGenerator_addMapping(aArgs) {
-      var generated = util.getArg(aArgs, 'generated');
-      var original = util.getArg(aArgs, 'original', null);
-      var source = util.getArg(aArgs, 'source', null);
-      var name = util.getArg(aArgs, 'name', null);
-
-      if (!this._skipValidation) {
-        this._validateMapping(generated, original, source, name);
-      }
-
-      if (source != null && !this._sources.has(source)) {
-        this._sources.add(source);
-      }
-
-      if (name != null && !this._names.has(name)) {
-        this._names.add(name);
-      }
-
-      this._mappings.add({
-        generatedLine: generated.line,
-        generatedColumn: generated.column,
-        originalLine: original != null && original.line,
-        originalColumn: original != null && original.column,
-        source: source,
-        name: name
-      });
-    };
-
-  /**
-   * Set the source content for a source file.
-   */
-  SourceMapGenerator.prototype.setSourceContent =
-    function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {
-      var source = aSourceFile;
-      if (this._sourceRoot != null) {
-        source = util.relative(this._sourceRoot, source);
-      }
-
-      if (aSourceContent != null) {
-        // Add the source content to the _sourcesContents map.
-        // Create a new _sourcesContents map if the property is null.
-        if (!this._sourcesContents) {
-          this._sourcesContents = {};
-        }
-        this._sourcesContents[util.toSetString(source)] = aSourceContent;
-      } else if (this._sourcesContents) {
-        // Remove the source file from the _sourcesContents map.
-        // If the _sourcesContents map is empty, set the property to null.
-        delete this._sourcesContents[util.toSetString(source)];
-        if (Object.keys(this._sourcesContents).length === 0) {
-          this._sourcesContents = null;
-        }
-      }
-    };
-
-  /**
-   * Applies the mappings of a sub-source-map for a specific source file to the
-   * source map being generated. Each mapping to the supplied source file is
-   * rewritten using the supplied source map. Note: The resolution for the
-   * resulting mappings is the minimium of this map and the supplied map.
-   *
-   * @param aSourceMapConsumer The source map to be applied.
-   * @param aSourceFile Optional. The filename of the source file.
-   *        If omitted, SourceMapConsumer's file property will be used.
-   * @param aSourceMapPath Optional. The dirname of the path to the source map
-   *        to be applied. If relative, it is relative to the SourceMapConsumer.
-   *        This parameter is needed when the two source maps aren't in the same
-   *        directory, and the source map to be applied contains relative source
-   *        paths. If so, those relative source paths need to be rewritten
-   *        relative to the SourceMapGenerator.
-   */
-  SourceMapGenerator.prototype.applySourceMap =
-    function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {
-      var sourceFile = aSourceFile;
-      // If aSourceFile is omitted, we will use the file property of the SourceMap
-      if (aSourceFile == null) {
-        if (aSourceMapConsumer.file == null) {
-          throw new Error(
-            'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +
-            'or the source map\'s "file" property. Both were omitted.'
-          );
-        }
-        sourceFile = aSourceMapConsumer.file;
-      }
-      var sourceRoot = this._sourceRoot;
-      // Make "sourceFile" relative if an absolute Url is passed.
-      if (sourceRoot != null) {
-        sourceFile = util.relative(sourceRoot, sourceFile);
-      }
-      // Applying the SourceMap can add and remove items from the sources and
-      // the names array.
-      var newSources = new ArraySet();
-      var newNames = new ArraySet();
-
-      // Find mappings for the "sourceFile"
-      this._mappings.unsortedForEach(function (mapping) {
-        if (mapping.source === sourceFile && mapping.originalLine != null) {
-          // Check if it can be mapped by the source map, then update the mapping.
-          var original = aSourceMapConsumer.originalPositionFor({
-            line: mapping.originalLine,
-            column: mapping.originalColumn
-          });
-          if (original.source != null) {
-            // Copy mapping
-            mapping.source = original.source;
-            if (aSourceMapPath != null) {
-              mapping.source = util.join(aSourceMapPath, mapping.source)
-            }
-            if (sourceRoot != null) {
-              mapping.source = util.relative(sourceRoot, mapping.source);
-            }
-            mapping.originalLine = original.line;
-            mapping.originalColumn = original.column;
-            if (original.name != null) {
-              mapping.name = original.name;
-            }
-          }
-        }
-
-        var source = mapping.source;
-        if (source != null && !newSources.has(source)) {
-          newSources.add(source);
-        }
-
-        var name = mapping.name;
-        if (name != null && !newNames.has(name)) {
-          newNames.add(name);
-        }
-
-      }, this);
-      this._sources = newSources;
-      this._names = newNames;
-
-      // Copy sourcesContents of applied map.
-      aSourceMapConsumer.sources.forEach(function (sourceFile) {
-        var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-        if (content != null) {
-          if (aSourceMapPath != null) {
-            sourceFile = util.join(aSourceMapPath, sourceFile);
-          }
-          if (sourceRoot != null) {
-            sourceFile = util.relative(sourceRoot, sourceFile);
-          }
-          this.setSourceContent(sourceFile, content);
-        }
-      }, this);
-    };
-
-  /**
-   * A mapping can have one of the three levels of data:
-   *
-   *   1. Just the generated position.
-   *   2. The Generated position, original position, and original source.
-   *   3. Generated and original position, original source, as well as a name
-   *      token.
-   *
-   * To maintain consistency, we validate that any new mapping being added falls
-   * in to one of these categories.
-   */
-  SourceMapGenerator.prototype._validateMapping =
-    function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,
-                                                aName) {
-      if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
-          && aGenerated.line > 0 && aGenerated.column >= 0
-          && !aOriginal && !aSource && !aName) {
-        // Case 1.
-        return;
-      }
-      else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
-               && aOriginal && 'line' in aOriginal && 'column' in aOriginal
-               && aGenerated.line > 0 && aGenerated.column >= 0
-               && aOriginal.line > 0 && aOriginal.column >= 0
-               && aSource) {
-        // Cases 2 and 3.
-        return;
-      }
-      else {
-        throw new Error('Invalid mapping: ' + JSON.stringify({
-          generated: aGenerated,
-          source: aSource,
-          original: aOriginal,
-          name: aName
-        }));
-      }
-    };
-
-  /**
-   * Serialize the accumulated mappings in to the stream of base 64 VLQs
-   * specified by the source map format.
-   */
-  SourceMapGenerator.prototype._serializeMappings =
-    function SourceMapGenerator_serializeMappings() {
-      var previousGeneratedColumn = 0;
-      var previousGeneratedLine = 1;
-      var previousOriginalColumn = 0;
-      var previousOriginalLine = 0;
-      var previousName = 0;
-      var previousSource = 0;
-      var result = '';
-      var mapping;
-
-      var mappings = this._mappings.toArray();
-
-      for (var i = 0, len = mappings.length; i < len; i++) {
-        mapping = mappings[i];
-
-        if (mapping.generatedLine !== previousGeneratedLine) {
-          previousGeneratedColumn = 0;
-          while (mapping.generatedLine !== previousGeneratedLine) {
-            result += ';';
-            previousGeneratedLine++;
-          }
-        }
-        else {
-          if (i > 0) {
-            if (!util.compareByGeneratedPositions(mapping, mappings[i - 1])) {
-              continue;
-            }
-            result += ',';
-          }
-        }
-
-        result += base64VLQ.encode(mapping.generatedColumn
-                                   - previousGeneratedColumn);
-        previousGeneratedColumn = mapping.generatedColumn;
-
-        if (mapping.source != null) {
-          result += base64VLQ.encode(this._sources.indexOf(mapping.source)
-                                     - previousSource);
-          previousSource = this._sources.indexOf(mapping.source);
-
-          // lines are stored 0-based in SourceMap spec version 3
-          result += base64VLQ.encode(mapping.originalLine - 1
-                                     - previousOriginalLine);
-          previousOriginalLine = mapping.originalLine - 1;
-
-          result += base64VLQ.encode(mapping.originalColumn
-                                     - previousOriginalColumn);
-          previousOriginalColumn = mapping.originalColumn;
-
-          if (mapping.name != null) {
-            result += base64VLQ.encode(this._names.indexOf(mapping.name)
-                                       - previousName);
-            previousName = this._names.indexOf(mapping.name);
-          }
-        }
-      }
-
-      return result;
-    };
-
-  SourceMapGenerator.prototype._generateSourcesContent =
-    function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {
-      return aSources.map(function (source) {
-        if (!this._sourcesContents) {
-          return null;
-        }
-        if (aSourceRoot != null) {
-          source = util.relative(aSourceRoot, source);
-        }
-        var key = util.toSetString(source);
-        return Object.prototype.hasOwnProperty.call(this._sourcesContents,
-                                                    key)
-          ? this._sourcesContents[key]
-          : null;
-      }, this);
-    };
-
-  /**
-   * Externalize the source map.
-   */
-  SourceMapGenerator.prototype.toJSON =
-    function SourceMapGenerator_toJSON() {
-      var map = {
-        version: this._version,
-        sources: this._sources.toArray(),
-        names: this._names.toArray(),
-        mappings: this._serializeMappings()
-      };
-      if (this._file != null) {
-        map.file = this._file;
-      }
-      if (this._sourceRoot != null) {
-        map.sourceRoot = this._sourceRoot;
-      }
-      if (this._sourcesContents) {
-        map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);
-      }
-
-      return map;
-    };
-
-  /**
-   * Render the source map being generated to a string.
-   */
-  SourceMapGenerator.prototype.toString =
-    function SourceMapGenerator_toString() {
-      return JSON.stringify(this);
-    };
-
-  exports.SourceMapGenerator = SourceMapGenerator;
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/source-node.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/source-node.js
deleted file mode 100644 (file)
index 9ee90bd..0000000
+++ /dev/null
@@ -1,414 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;
-  var util = require('./util');
-
-  // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other
-  // operating systems these days (capturing the result).
-  var REGEX_NEWLINE = /(\r?\n)/;
-
-  // Newline character code for charCodeAt() comparisons
-  var NEWLINE_CODE = 10;
-
-  // Private symbol for identifying `SourceNode`s when multiple versions of
-  // the source-map library are loaded. This MUST NOT CHANGE across
-  // versions!
-  var isSourceNode = "$$$isSourceNode$$$";
-
-  /**
-   * SourceNodes provide a way to abstract over interpolating/concatenating
-   * snippets of generated JavaScript source code while maintaining the line and
-   * column information associated with the original source code.
-   *
-   * @param aLine The original line number.
-   * @param aColumn The original column number.
-   * @param aSource The original source's filename.
-   * @param aChunks Optional. An array of strings which are snippets of
-   *        generated JS, or other SourceNodes.
-   * @param aName The original identifier.
-   */
-  function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
-    this.children = [];
-    this.sourceContents = {};
-    this.line = aLine == null ? null : aLine;
-    this.column = aColumn == null ? null : aColumn;
-    this.source = aSource == null ? null : aSource;
-    this.name = aName == null ? null : aName;
-    this[isSourceNode] = true;
-    if (aChunks != null) this.add(aChunks);
-  }
-
-  /**
-   * Creates a SourceNode from generated code and a SourceMapConsumer.
-   *
-   * @param aGeneratedCode The generated code
-   * @param aSourceMapConsumer The SourceMap for the generated code
-   * @param aRelativePath Optional. The path that relative sources in the
-   *        SourceMapConsumer should be relative to.
-   */
-  SourceNode.fromStringWithSourceMap =
-    function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
-      // The SourceNode we want to fill with the generated code
-      // and the SourceMap
-      var node = new SourceNode();
-
-      // All even indices of this array are one line of the generated code,
-      // while all odd indices are the newlines between two adjacent lines
-      // (since `REGEX_NEWLINE` captures its match).
-      // Processed fragments are removed from this array, by calling `shiftNextLine`.
-      var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
-      var shiftNextLine = function() {
-        var lineContents = remainingLines.shift();
-        // The last line of a file might not have a newline.
-        var newLine = remainingLines.shift() || "";
-        return lineContents + newLine;
-      };
-
-      // We need to remember the position of "remainingLines"
-      var lastGeneratedLine = 1, lastGeneratedColumn = 0;
-
-      // The generate SourceNodes we need a code range.
-      // To extract it current and last mapping is used.
-      // Here we store the last mapping.
-      var lastMapping = null;
-
-      aSourceMapConsumer.eachMapping(function (mapping) {
-        if (lastMapping !== null) {
-          // We add the code from "lastMapping" to "mapping":
-          // First check if there is a new line in between.
-          if (lastGeneratedLine < mapping.generatedLine) {
-            var code = "";
-            // Associate first line with "lastMapping"
-            addMappingWithCode(lastMapping, shiftNextLine());
-            lastGeneratedLine++;
-            lastGeneratedColumn = 0;
-            // The remaining code is added without mapping
-          } else {
-            // There is no new line in between.
-            // Associate the code between "lastGeneratedColumn" and
-            // "mapping.generatedColumn" with "lastMapping"
-            var nextLine = remainingLines[0];
-            var code = nextLine.substr(0, mapping.generatedColumn -
-                                          lastGeneratedColumn);
-            remainingLines[0] = nextLine.substr(mapping.generatedColumn -
-                                                lastGeneratedColumn);
-            lastGeneratedColumn = mapping.generatedColumn;
-            addMappingWithCode(lastMapping, code);
-            // No more remaining code, continue
-            lastMapping = mapping;
-            return;
-          }
-        }
-        // We add the generated code until the first mapping
-        // to the SourceNode without any mapping.
-        // Each line is added as separate string.
-        while (lastGeneratedLine < mapping.generatedLine) {
-          node.add(shiftNextLine());
-          lastGeneratedLine++;
-        }
-        if (lastGeneratedColumn < mapping.generatedColumn) {
-          var nextLine = remainingLines[0];
-          node.add(nextLine.substr(0, mapping.generatedColumn));
-          remainingLines[0] = nextLine.substr(mapping.generatedColumn);
-          lastGeneratedColumn = mapping.generatedColumn;
-        }
-        lastMapping = mapping;
-      }, this);
-      // We have processed all mappings.
-      if (remainingLines.length > 0) {
-        if (lastMapping) {
-          // Associate the remaining code in the current line with "lastMapping"
-          addMappingWithCode(lastMapping, shiftNextLine());
-        }
-        // and add the remaining lines without any mapping
-        node.add(remainingLines.join(""));
-      }
-
-      // Copy sourcesContent into SourceNode
-      aSourceMapConsumer.sources.forEach(function (sourceFile) {
-        var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-        if (content != null) {
-          if (aRelativePath != null) {
-            sourceFile = util.join(aRelativePath, sourceFile);
-          }
-          node.setSourceContent(sourceFile, content);
-        }
-      });
-
-      return node;
-
-      function addMappingWithCode(mapping, code) {
-        if (mapping === null || mapping.source === undefined) {
-          node.add(code);
-        } else {
-          var source = aRelativePath
-            ? util.join(aRelativePath, mapping.source)
-            : mapping.source;
-          node.add(new SourceNode(mapping.originalLine,
-                                  mapping.originalColumn,
-                                  source,
-                                  code,
-                                  mapping.name));
-        }
-      }
-    };
-
-  /**
-   * Add a chunk of generated JS to this source node.
-   *
-   * @param aChunk A string snippet of generated JS code, another instance of
-   *        SourceNode, or an array where each member is one of those things.
-   */
-  SourceNode.prototype.add = function SourceNode_add(aChunk) {
-    if (Array.isArray(aChunk)) {
-      aChunk.forEach(function (chunk) {
-        this.add(chunk);
-      }, this);
-    }
-    else if (aChunk[isSourceNode] || typeof aChunk === "string") {
-      if (aChunk) {
-        this.children.push(aChunk);
-      }
-    }
-    else {
-      throw new TypeError(
-        "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
-      );
-    }
-    return this;
-  };
-
-  /**
-   * Add a chunk of generated JS to the beginning of this source node.
-   *
-   * @param aChunk A string snippet of generated JS code, another instance of
-   *        SourceNode, or an array where each member is one of those things.
-   */
-  SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {
-    if (Array.isArray(aChunk)) {
-      for (var i = aChunk.length-1; i >= 0; i--) {
-        this.prepend(aChunk[i]);
-      }
-    }
-    else if (aChunk[isSourceNode] || typeof aChunk === "string") {
-      this.children.unshift(aChunk);
-    }
-    else {
-      throw new TypeError(
-        "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
-      );
-    }
-    return this;
-  };
-
-  /**
-   * Walk over the tree of JS snippets in this node and its children. The
-   * walking function is called once for each snippet of JS and is passed that
-   * snippet and the its original associated source's line/column location.
-   *
-   * @param aFn The traversal function.
-   */
-  SourceNode.prototype.walk = function SourceNode_walk(aFn) {
-    var chunk;
-    for (var i = 0, len = this.children.length; i < len; i++) {
-      chunk = this.children[i];
-      if (chunk[isSourceNode]) {
-        chunk.walk(aFn);
-      }
-      else {
-        if (chunk !== '') {
-          aFn(chunk, { source: this.source,
-                       line: this.line,
-                       column: this.column,
-                       name: this.name });
-        }
-      }
-    }
-  };
-
-  /**
-   * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between
-   * each of `this.children`.
-   *
-   * @param aSep The separator.
-   */
-  SourceNode.prototype.join = function SourceNode_join(aSep) {
-    var newChildren;
-    var i;
-    var len = this.children.length;
-    if (len > 0) {
-      newChildren = [];
-      for (i = 0; i < len-1; i++) {
-        newChildren.push(this.children[i]);
-        newChildren.push(aSep);
-      }
-      newChildren.push(this.children[i]);
-      this.children = newChildren;
-    }
-    return this;
-  };
-
-  /**
-   * Call String.prototype.replace on the very right-most source snippet. Useful
-   * for trimming whitespace from the end of a source node, etc.
-   *
-   * @param aPattern The pattern to replace.
-   * @param aReplacement The thing to replace the pattern with.
-   */
-  SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {
-    var lastChild = this.children[this.children.length - 1];
-    if (lastChild[isSourceNode]) {
-      lastChild.replaceRight(aPattern, aReplacement);
-    }
-    else if (typeof lastChild === 'string') {
-      this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);
-    }
-    else {
-      this.children.push(''.replace(aPattern, aReplacement));
-    }
-    return this;
-  };
-
-  /**
-   * Set the source content for a source file. This will be added to the SourceMapGenerator
-   * in the sourcesContent field.
-   *
-   * @param aSourceFile The filename of the source file
-   * @param aSourceContent The content of the source file
-   */
-  SourceNode.prototype.setSourceContent =
-    function SourceNode_setSourceContent(aSourceFile, aSourceContent) {
-      this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;
-    };
-
-  /**
-   * Walk over the tree of SourceNodes. The walking function is called for each
-   * source file content and is passed the filename and source content.
-   *
-   * @param aFn The traversal function.
-   */
-  SourceNode.prototype.walkSourceContents =
-    function SourceNode_walkSourceContents(aFn) {
-      for (var i = 0, len = this.children.length; i < len; i++) {
-        if (this.children[i][isSourceNode]) {
-          this.children[i].walkSourceContents(aFn);
-        }
-      }
-
-      var sources = Object.keys(this.sourceContents);
-      for (var i = 0, len = sources.length; i < len; i++) {
-        aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);
-      }
-    };
-
-  /**
-   * Return the string representation of this source node. Walks over the tree
-   * and concatenates all the various snippets together to one string.
-   */
-  SourceNode.prototype.toString = function SourceNode_toString() {
-    var str = "";
-    this.walk(function (chunk) {
-      str += chunk;
-    });
-    return str;
-  };
-
-  /**
-   * Returns the string representation of this source node along with a source
-   * map.
-   */
-  SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
-    var generated = {
-      code: "",
-      line: 1,
-      column: 0
-    };
-    var map = new SourceMapGenerator(aArgs);
-    var sourceMappingActive = false;
-    var lastOriginalSource = null;
-    var lastOriginalLine = null;
-    var lastOriginalColumn = null;
-    var lastOriginalName = null;
-    this.walk(function (chunk, original) {
-      generated.code += chunk;
-      if (original.source !== null
-          && original.line !== null
-          && original.column !== null) {
-        if(lastOriginalSource !== original.source
-           || lastOriginalLine !== original.line
-           || lastOriginalColumn !== original.column
-           || lastOriginalName !== original.name) {
-          map.addMapping({
-            source: original.source,
-            original: {
-              line: original.line,
-              column: original.column
-            },
-            generated: {
-              line: generated.line,
-              column: generated.column
-            },
-            name: original.name
-          });
-        }
-        lastOriginalSource = original.source;
-        lastOriginalLine = original.line;
-        lastOriginalColumn = original.column;
-        lastOriginalName = original.name;
-        sourceMappingActive = true;
-      } else if (sourceMappingActive) {
-        map.addMapping({
-          generated: {
-            line: generated.line,
-            column: generated.column
-          }
-        });
-        lastOriginalSource = null;
-        sourceMappingActive = false;
-      }
-      for (var idx = 0, length = chunk.length; idx < length; idx++) {
-        if (chunk.charCodeAt(idx) === NEWLINE_CODE) {
-          generated.line++;
-          generated.column = 0;
-          // Mappings end at eol
-          if (idx + 1 === length) {
-            lastOriginalSource = null;
-            sourceMappingActive = false;
-          } else if (sourceMappingActive) {
-            map.addMapping({
-              source: original.source,
-              original: {
-                line: original.line,
-                column: original.column
-              },
-              generated: {
-                line: generated.line,
-                column: generated.column
-              },
-              name: original.name
-            });
-          }
-        } else {
-          generated.column++;
-        }
-      }
-    });
-    this.walkSourceContents(function (sourceFile, sourceContent) {
-      map.setSourceContent(sourceFile, sourceContent);
-    });
-
-    return { code: generated.code, map: map };
-  };
-
-  exports.SourceNode = SourceNode;
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/util.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/util.js
deleted file mode 100644 (file)
index 976f6ca..0000000
+++ /dev/null
@@ -1,319 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  /**
-   * This is a helper function for getting values from parameter/options
-   * objects.
-   *
-   * @param args The object we are extracting values from
-   * @param name The name of the property we are getting.
-   * @param defaultValue An optional value to return if the property is missing
-   * from the object. If this is not specified and the property is missing, an
-   * error will be thrown.
-   */
-  function getArg(aArgs, aName, aDefaultValue) {
-    if (aName in aArgs) {
-      return aArgs[aName];
-    } else if (arguments.length === 3) {
-      return aDefaultValue;
-    } else {
-      throw new Error('"' + aName + '" is a required argument.');
-    }
-  }
-  exports.getArg = getArg;
-
-  var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/;
-  var dataUrlRegexp = /^data:.+\,.+$/;
-
-  function urlParse(aUrl) {
-    var match = aUrl.match(urlRegexp);
-    if (!match) {
-      return null;
-    }
-    return {
-      scheme: match[1],
-      auth: match[2],
-      host: match[3],
-      port: match[4],
-      path: match[5]
-    };
-  }
-  exports.urlParse = urlParse;
-
-  function urlGenerate(aParsedUrl) {
-    var url = '';
-    if (aParsedUrl.scheme) {
-      url += aParsedUrl.scheme + ':';
-    }
-    url += '//';
-    if (aParsedUrl.auth) {
-      url += aParsedUrl.auth + '@';
-    }
-    if (aParsedUrl.host) {
-      url += aParsedUrl.host;
-    }
-    if (aParsedUrl.port) {
-      url += ":" + aParsedUrl.port
-    }
-    if (aParsedUrl.path) {
-      url += aParsedUrl.path;
-    }
-    return url;
-  }
-  exports.urlGenerate = urlGenerate;
-
-  /**
-   * Normalizes a path, or the path portion of a URL:
-   *
-   * - Replaces consequtive slashes with one slash.
-   * - Removes unnecessary '.' parts.
-   * - Removes unnecessary '<dir>/..' parts.
-   *
-   * Based on code in the Node.js 'path' core module.
-   *
-   * @param aPath The path or url to normalize.
-   */
-  function normalize(aPath) {
-    var path = aPath;
-    var url = urlParse(aPath);
-    if (url) {
-      if (!url.path) {
-        return aPath;
-      }
-      path = url.path;
-    }
-    var isAbsolute = (path.charAt(0) === '/');
-
-    var parts = path.split(/\/+/);
-    for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {
-      part = parts[i];
-      if (part === '.') {
-        parts.splice(i, 1);
-      } else if (part === '..') {
-        up++;
-      } else if (up > 0) {
-        if (part === '') {
-          // The first part is blank if the path is absolute. Trying to go
-          // above the root is a no-op. Therefore we can remove all '..' parts
-          // directly after the root.
-          parts.splice(i + 1, up);
-          up = 0;
-        } else {
-          parts.splice(i, 2);
-          up--;
-        }
-      }
-    }
-    path = parts.join('/');
-
-    if (path === '') {
-      path = isAbsolute ? '/' : '.';
-    }
-
-    if (url) {
-      url.path = path;
-      return urlGenerate(url);
-    }
-    return path;
-  }
-  exports.normalize = normalize;
-
-  /**
-   * Joins two paths/URLs.
-   *
-   * @param aRoot The root path or URL.
-   * @param aPath The path or URL to be joined with the root.
-   *
-   * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a
-   *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended
-   *   first.
-   * - Otherwise aPath is a path. If aRoot is a URL, then its path portion
-   *   is updated with the result and aRoot is returned. Otherwise the result
-   *   is returned.
-   *   - If aPath is absolute, the result is aPath.
-   *   - Otherwise the two paths are joined with a slash.
-   * - Joining for example 'http://' and 'www.example.com' is also supported.
-   */
-  function join(aRoot, aPath) {
-    if (aRoot === "") {
-      aRoot = ".";
-    }
-    if (aPath === "") {
-      aPath = ".";
-    }
-    var aPathUrl = urlParse(aPath);
-    var aRootUrl = urlParse(aRoot);
-    if (aRootUrl) {
-      aRoot = aRootUrl.path || '/';
-    }
-
-    // `join(foo, '//www.example.org')`
-    if (aPathUrl && !aPathUrl.scheme) {
-      if (aRootUrl) {
-        aPathUrl.scheme = aRootUrl.scheme;
-      }
-      return urlGenerate(aPathUrl);
-    }
-
-    if (aPathUrl || aPath.match(dataUrlRegexp)) {
-      return aPath;
-    }
-
-    // `join('http://', 'www.example.com')`
-    if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {
-      aRootUrl.host = aPath;
-      return urlGenerate(aRootUrl);
-    }
-
-    var joined = aPath.charAt(0) === '/'
-      ? aPath
-      : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath);
-
-    if (aRootUrl) {
-      aRootUrl.path = joined;
-      return urlGenerate(aRootUrl);
-    }
-    return joined;
-  }
-  exports.join = join;
-
-  /**
-   * Make a path relative to a URL or another path.
-   *
-   * @param aRoot The root path or URL.
-   * @param aPath The path or URL to be made relative to aRoot.
-   */
-  function relative(aRoot, aPath) {
-    if (aRoot === "") {
-      aRoot = ".";
-    }
-
-    aRoot = aRoot.replace(/\/$/, '');
-
-    // XXX: It is possible to remove this block, and the tests still pass!
-    var url = urlParse(aRoot);
-    if (aPath.charAt(0) == "/" && url && url.path == "/") {
-      return aPath.slice(1);
-    }
-
-    return aPath.indexOf(aRoot + '/') === 0
-      ? aPath.substr(aRoot.length + 1)
-      : aPath;
-  }
-  exports.relative = relative;
-
-  /**
-   * Because behavior goes wacky when you set `__proto__` on objects, we
-   * have to prefix all the strings in our set with an arbitrary character.
-   *
-   * See https://github.com/mozilla/source-map/pull/31 and
-   * https://github.com/mozilla/source-map/issues/30
-   *
-   * @param String aStr
-   */
-  function toSetString(aStr) {
-    return '$' + aStr;
-  }
-  exports.toSetString = toSetString;
-
-  function fromSetString(aStr) {
-    return aStr.substr(1);
-  }
-  exports.fromSetString = fromSetString;
-
-  function strcmp(aStr1, aStr2) {
-    var s1 = aStr1 || "";
-    var s2 = aStr2 || "";
-    return (s1 > s2) - (s1 < s2);
-  }
-
-  /**
-   * Comparator between two mappings where the original positions are compared.
-   *
-   * Optionally pass in `true` as `onlyCompareGenerated` to consider two
-   * mappings with the same original source/line/column, but different generated
-   * line and column the same. Useful when searching for a mapping with a
-   * stubbed out mapping.
-   */
-  function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
-    var cmp;
-
-    cmp = strcmp(mappingA.source, mappingB.source);
-    if (cmp) {
-      return cmp;
-    }
-
-    cmp = mappingA.originalLine - mappingB.originalLine;
-    if (cmp) {
-      return cmp;
-    }
-
-    cmp = mappingA.originalColumn - mappingB.originalColumn;
-    if (cmp || onlyCompareOriginal) {
-      return cmp;
-    }
-
-    cmp = strcmp(mappingA.name, mappingB.name);
-    if (cmp) {
-      return cmp;
-    }
-
-    cmp = mappingA.generatedLine - mappingB.generatedLine;
-    if (cmp) {
-      return cmp;
-    }
-
-    return mappingA.generatedColumn - mappingB.generatedColumn;
-  };
-  exports.compareByOriginalPositions = compareByOriginalPositions;
-
-  /**
-   * Comparator between two mappings where the generated positions are
-   * compared.
-   *
-   * Optionally pass in `true` as `onlyCompareGenerated` to consider two
-   * mappings with the same generated line and column, but different
-   * source/name/original line and column the same. Useful when searching for a
-   * mapping with a stubbed out mapping.
-   */
-  function compareByGeneratedPositions(mappingA, mappingB, onlyCompareGenerated) {
-    var cmp;
-
-    cmp = mappingA.generatedLine - mappingB.generatedLine;
-    if (cmp) {
-      return cmp;
-    }
-
-    cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-    if (cmp || onlyCompareGenerated) {
-      return cmp;
-    }
-
-    cmp = strcmp(mappingA.source, mappingB.source);
-    if (cmp) {
-      return cmp;
-    }
-
-    cmp = mappingA.originalLine - mappingB.originalLine;
-    if (cmp) {
-      return cmp;
-    }
-
-    cmp = mappingA.originalColumn - mappingB.originalColumn;
-    if (cmp) {
-      return cmp;
-    }
-
-    return strcmp(mappingA.name, mappingB.name);
-  };
-  exports.compareByGeneratedPositions = compareByGeneratedPositions;
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/LICENSE b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/LICENSE
deleted file mode 100644 (file)
index f33d665..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-amdefine is released under two licenses: new BSD, and MIT. You may pick the
-license that best suits your development needs. The text of both licenses are
-provided below.
-
-
-The "New" BSD License:
-----------------------
-
-Copyright (c) 2011, The Dojo Foundation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-  * Redistributions of source code must retain the above copyright notice, this
-    list of conditions and the following disclaimer.
-  * Redistributions in binary form must reproduce the above copyright notice,
-    this list of conditions and the following disclaimer in the documentation
-    and/or other materials provided with the distribution.
-  * Neither the name of the Dojo Foundation nor the names of its contributors
-    may be used to endorse or promote products derived from this software
-    without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-MIT License
------------
-
-Copyright (c) 2011, The Dojo Foundation
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/README.md b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/README.md
deleted file mode 100644 (file)
index 037a6e8..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-# amdefine
-
-A module that can be used to implement AMD's define() in Node. This allows you
-to code to the AMD API and have the module work in node programs without
-requiring those other programs to use AMD.
-
-## Usage
-
-**1)** Update your package.json to indicate amdefine as a dependency:
-
-```javascript
-    "dependencies": {
-        "amdefine": ">=0.1.0"
-    }
-```
-
-Then run `npm install` to get amdefine into your project.
-
-**2)** At the top of each module that uses define(), place this code:
-
-```javascript
-if (typeof define !== 'function') { var define = require('amdefine')(module) }
-```
-
-**Only use these snippets** when loading amdefine. If you preserve the basic structure,
-with the braces, it will be stripped out when using the [RequireJS optimizer](#optimizer).
-
-You can add spaces, line breaks and even require amdefine with a local path, but
-keep the rest of the structure to get the stripping behavior.
-
-As you may know, because `if` statements in JavaScript don't have their own scope, the var
-declaration in the above snippet is made whether the `if` expression is truthy or not. If
-RequireJS is loaded then the declaration is superfluous because `define` is already already
-declared in the same scope in RequireJS. Fortunately JavaScript handles multiple `var`
-declarations of the same variable in the same scope gracefully.
-
-If you want to deliver amdefine.js with your code rather than specifying it as a dependency
-with npm, then just download the latest release and refer to it using a relative path:
-
-[Latest Version](https://github.com/jrburke/amdefine/raw/latest/amdefine.js)
-
-### amdefine/intercept
-
-Consider this very experimental.
-
-Instead of pasting the piece of text for the amdefine setup of a `define`
-variable in each module you create or consume, you can use `amdefine/intercept`
-instead. It will automatically insert the above snippet in each .js file loaded
-by Node.
-
-**Warning**: you should only use this if you are creating an application that
-is consuming AMD style defined()'d modules that are distributed via npm and want
-to run that code in Node.
-
-For library code where you are not sure if it will be used by others in Node or
-in the browser, then explicitly depending on amdefine and placing the code
-snippet above is suggested path, instead of using `amdefine/intercept`. The
-intercept module affects all .js files loaded in the Node app, and it is
-inconsiderate to modify global state like that unless you are also controlling
-the top level app.
-
-#### Why distribute AMD-style modules via npm?
-
-npm has a lot of weaknesses for front-end use (installed layout is not great,
-should have better support for the `baseUrl + moduleID + '.js' style of loading,
-single file JS installs), but some people want a JS package manager and are
-willing to live with those constraints. If that is you, but still want to author
-in AMD style modules to get dynamic require([]), better direct source usage and
-powerful loader plugin support in the browser, then this tool can help.
-
-#### amdefine/intercept usage
-
-Just require it in your top level app module (for example index.js, server.js):
-
-```javascript
-require('amdefine/intercept');
-```
-
-The module does not return a value, so no need to assign the result to a local
-variable.
-
-Then just require() code as you normally would with Node's require(). Any .js
-loaded after the intercept require will have the amdefine check injected in
-the .js source as it is loaded. It does not modify the source on disk, just
-prepends some content to the text of the module as it is loaded by Node.
-
-#### How amdefine/intercept works
-
-It overrides the `Module._extensions['.js']` in Node to automatically prepend
-the amdefine snippet above. So, it will affect any .js file loaded by your
-app.
-
-## define() usage
-
-It is best if you use the anonymous forms of define() in your module:
-
-```javascript
-define(function (require) {
-    var dependency = require('dependency');
-});
-```
-
-or
-
-```javascript
-define(['dependency'], function (dependency) {
-
-});
-```
-
-## RequireJS optimizer integration. <a name="optimizer"></name>
-
-Version 1.0.3 of the [RequireJS optimizer](http://requirejs.org/docs/optimization.html)
-will have support for stripping the `if (typeof define !== 'function')` check
-mentioned above, so you can include this snippet for code that runs in the
-browser, but avoid taking the cost of the if() statement once the code is
-optimized for deployment.
-
-## Node 0.4 Support
-
-If you want to support Node 0.4, then add `require` as the second parameter to amdefine:
-
-```javascript
-//Only if you want Node 0.4. If using 0.5 or later, use the above snippet.
-if (typeof define !== 'function') { var define = require('amdefine')(module, require) }
-```
-
-## Limitations
-
-### Synchronous vs Asynchronous
-
-amdefine creates a define() function that is callable by your code. It will
-execute and trace dependencies and call the factory function *synchronously*,
-to keep the behavior in line with Node's synchronous dependency tracing.
-
-The exception: calling AMD's callback-style require() from inside a factory
-function. The require callback is called on process.nextTick():
-
-```javascript
-define(function (require) {
-    require(['a'], function(a) {
-        //'a' is loaded synchronously, but
-        //this callback is called on process.nextTick().
-    });
-});
-```
-
-### Loader Plugins
-
-Loader plugins are supported as long as they call their load() callbacks
-synchronously. So ones that do network requests will not work. However plugins
-like [text](http://requirejs.org/docs/api.html#text) can load text files locally.
-
-The plugin API's `load.fromText()` is **not supported** in amdefine, so this means
-transpiler plugins like the [CoffeeScript loader plugin](https://github.com/jrburke/require-cs)
-will not work. This may be fixable, but it is a bit complex, and I do not have
-enough node-fu to figure it out yet. See the source for amdefine.js if you want
-to get an idea of the issues involved.
-
-## Tests
-
-To run the tests, cd to **tests** and run:
-
-```
-node all.js
-node all-intercept.js
-```
-
-## License
-
-New BSD and MIT. Check the LICENSE file for all the details.
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/amdefine.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/amdefine.js
deleted file mode 100644 (file)
index 93f140e..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-/** vim: et:ts=4:sw=4:sts=4
- * @license amdefine 0.1.0 Copyright (c) 2011, The Dojo Foundation All Rights Reserved.
- * Available via the MIT or new BSD license.
- * see: http://github.com/jrburke/amdefine for details
- */
-
-/*jslint node: true */
-/*global module, process */
-'use strict';
-
-/**
- * Creates a define for node.
- * @param {Object} module the "module" object that is defined by Node for the
- * current module.
- * @param {Function} [requireFn]. Node's require function for the current module.
- * It only needs to be passed in Node versions before 0.5, when module.require
- * did not exist.
- * @returns {Function} a define function that is usable for the current node
- * module.
- */
-function amdefine(module, requireFn) {
-    'use strict';
-    var defineCache = {},
-        loaderCache = {},
-        alreadyCalled = false,
-        path = require('path'),
-        makeRequire, stringRequire;
-
-    /**
-     * Trims the . and .. from an array of path segments.
-     * It will keep a leading path segment if a .. will become
-     * the first path segment, to help with module name lookups,
-     * which act like paths, but can be remapped. But the end result,
-     * all paths that use this function should look normalized.
-     * NOTE: this method MODIFIES the input array.
-     * @param {Array} ary the array of path segments.
-     */
-    function trimDots(ary) {
-        var i, part;
-        for (i = 0; ary[i]; i+= 1) {
-            part = ary[i];
-            if (part === '.') {
-                ary.splice(i, 1);
-                i -= 1;
-            } else if (part === '..') {
-                if (i === 1 && (ary[2] === '..' || ary[0] === '..')) {
-                    //End of the line. Keep at least one non-dot
-                    //path segment at the front so it can be mapped
-                    //correctly to disk. Otherwise, there is likely
-                    //no path mapping for a path starting with '..'.
-                    //This can still fail, but catches the most reasonable
-                    //uses of ..
-                    break;
-                } else if (i > 0) {
-                    ary.splice(i - 1, 2);
-                    i -= 2;
-                }
-            }
-        }
-    }
-
-    function normalize(name, baseName) {
-        var baseParts;
-
-        //Adjust any relative paths.
-        if (name && name.charAt(0) === '.') {
-            //If have a base name, try to normalize against it,
-            //otherwise, assume it is a top-level require that will
-            //be relative to baseUrl in the end.
-            if (baseName) {
-                baseParts = baseName.split('/');
-                baseParts = baseParts.slice(0, baseParts.length - 1);
-                baseParts = baseParts.concat(name.split('/'));
-                trimDots(baseParts);
-                name = baseParts.join('/');
-            }
-        }
-
-        return name;
-    }
-
-    /**
-     * Create the normalize() function passed to a loader plugin's
-     * normalize method.
-     */
-    function makeNormalize(relName) {
-        return function (name) {
-            return normalize(name, relName);
-        };
-    }
-
-    function makeLoad(id) {
-        function load(value) {
-            loaderCache[id] = value;
-        }
-
-        load.fromText = function (id, text) {
-            //This one is difficult because the text can/probably uses
-            //define, and any relative paths and requires should be relative
-            //to that id was it would be found on disk. But this would require
-            //bootstrapping a module/require fairly deeply from node core.
-            //Not sure how best to go about that yet.
-            throw new Error('amdefine does not implement load.fromText');
-        };
-
-        return load;
-    }
-
-    makeRequire = function (systemRequire, exports, module, relId) {
-        function amdRequire(deps, callback) {
-            if (typeof deps === 'string') {
-                //Synchronous, single module require('')
-                return stringRequire(systemRequire, exports, module, deps, relId);
-            } else {
-                //Array of dependencies with a callback.
-
-                //Convert the dependencies to modules.
-                deps = deps.map(function (depName) {
-                    return stringRequire(systemRequire, exports, module, depName, relId);
-                });
-
-                //Wait for next tick to call back the require call.
-                if (callback) {
-                    process.nextTick(function () {
-                        callback.apply(null, deps);
-                    });
-                }
-            }
-        }
-
-        amdRequire.toUrl = function (filePath) {
-            if (filePath.indexOf('.') === 0) {
-                return normalize(filePath, path.dirname(module.filename));
-            } else {
-                return filePath;
-            }
-        };
-
-        return amdRequire;
-    };
-
-    //Favor explicit value, passed in if the module wants to support Node 0.4.
-    requireFn = requireFn || function req() {
-        return module.require.apply(module, arguments);
-    };
-
-    function runFactory(id, deps, factory) {
-        var r, e, m, result;
-
-        if (id) {
-            e = loaderCache[id] = {};
-            m = {
-                id: id,
-                uri: __filename,
-                exports: e
-            };
-            r = makeRequire(requireFn, e, m, id);
-        } else {
-            //Only support one define call per file
-            if (alreadyCalled) {
-                throw new Error('amdefine with no module ID cannot be called more than once per file.');
-            }
-            alreadyCalled = true;
-
-            //Use the real variables from node
-            //Use module.exports for exports, since
-            //the exports in here is amdefine exports.
-            e = module.exports;
-            m = module;
-            r = makeRequire(requireFn, e, m, module.id);
-        }
-
-        //If there are dependencies, they are strings, so need
-        //to convert them to dependency values.
-        if (deps) {
-            deps = deps.map(function (depName) {
-                return r(depName);
-            });
-        }
-
-        //Call the factory with the right dependencies.
-        if (typeof factory === 'function') {
-            result = factory.apply(m.exports, deps);
-        } else {
-            result = factory;
-        }
-
-        if (result !== undefined) {
-            m.exports = result;
-            if (id) {
-                loaderCache[id] = m.exports;
-            }
-        }
-    }
-
-    stringRequire = function (systemRequire, exports, module, id, relId) {
-        //Split the ID by a ! so that
-        var index = id.indexOf('!'),
-            originalId = id,
-            prefix, plugin;
-
-        if (index === -1) {
-            id = normalize(id, relId);
-
-            //Straight module lookup. If it is one of the special dependencies,
-            //deal with it, otherwise, delegate to node.
-            if (id === 'require') {
-                return makeRequire(systemRequire, exports, module, relId);
-            } else if (id === 'exports') {
-                return exports;
-            } else if (id === 'module') {
-                return module;
-            } else if (loaderCache.hasOwnProperty(id)) {
-                return loaderCache[id];
-            } else if (defineCache[id]) {
-                runFactory.apply(null, defineCache[id]);
-                return loaderCache[id];
-            } else {
-                if(systemRequire) {
-                    return systemRequire(originalId);
-                } else {
-                    throw new Error('No module with ID: ' + id);
-                }
-            }
-        } else {
-            //There is a plugin in play.
-            prefix = id.substring(0, index);
-            id = id.substring(index + 1, id.length);
-
-            plugin = stringRequire(systemRequire, exports, module, prefix, relId);
-
-            if (plugin.normalize) {
-                id = plugin.normalize(id, makeNormalize(relId));
-            } else {
-                //Normalize the ID normally.
-                id = normalize(id, relId);
-            }
-
-            if (loaderCache[id]) {
-                return loaderCache[id];
-            } else {
-                plugin.load(id, makeRequire(systemRequire, exports, module, relId), makeLoad(id), {});
-
-                return loaderCache[id];
-            }
-        }
-    };
-
-    //Create a define function specific to the module asking for amdefine.
-    function define(id, deps, factory) {
-        if (Array.isArray(id)) {
-            factory = deps;
-            deps = id;
-            id = undefined;
-        } else if (typeof id !== 'string') {
-            factory = id;
-            id = deps = undefined;
-        }
-
-        if (deps && !Array.isArray(deps)) {
-            factory = deps;
-            deps = undefined;
-        }
-
-        if (!deps) {
-            deps = ['require', 'exports', 'module'];
-        }
-
-        //Set up properties for this module. If an ID, then use
-        //internal cache. If no ID, then use the external variables
-        //for this node module.
-        if (id) {
-            //Put the module in deep freeze until there is a
-            //require call for it.
-            defineCache[id] = [id, deps, factory];
-        } else {
-            runFactory(id, deps, factory);
-        }
-    }
-
-    //define.require, which has access to all the values in the
-    //cache. Useful for AMD modules that all have IDs in the file,
-    //but need to finally export a value to node based on one of those
-    //IDs.
-    define.require = function (id) {
-        if (loaderCache[id]) {
-            return loaderCache[id];
-        }
-
-        if (defineCache[id]) {
-            runFactory.apply(null, defineCache[id]);
-            return loaderCache[id];
-        }
-    };
-
-    define.amd = {};
-
-    return define;
-}
-
-module.exports = amdefine;
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/intercept.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/intercept.js
deleted file mode 100644 (file)
index 771a983..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*jshint node: true */
-var inserted,
-    Module = require('module'),
-    fs = require('fs'),
-    existingExtFn = Module._extensions['.js'],
-    amdefineRegExp = /amdefine\.js/;
-
-inserted  = "if (typeof define !== 'function') {var define = require('amdefine')(module)}";
-
-//From the node/lib/module.js source:
-function stripBOM(content) {
-    // Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
-    // because the buffer-to-string conversion in `fs.readFileSync()`
-    // translates it to FEFF, the UTF-16 BOM.
-    if (content.charCodeAt(0) === 0xFEFF) {
-        content = content.slice(1);
-    }
-    return content;
-}
-
-//Also adapted from the node/lib/module.js source:
-function intercept(module, filename) {
-    var content = stripBOM(fs.readFileSync(filename, 'utf8'));
-
-    if (!amdefineRegExp.test(module.id)) {
-        content = inserted + content;
-    }
-
-    module._compile(content, filename);
-}
-
-intercept._id = 'amdefine/intercept';
-
-if (!existingExtFn._id || existingExtFn._id !== intercept._id) {
-    Module._extensions['.js'] = intercept;
-}
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/package.json b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/package.json
deleted file mode 100644 (file)
index d7fead3..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-{
-  "name": "amdefine",
-  "description": "Provide AMD's define() API for declaring modules in the AMD format",
-  "version": "0.1.1",
-  "homepage": "http://github.com/jrburke/amdefine",
-  "author": {
-    "name": "James Burke",
-    "email": "jrburke@gmail.com",
-    "url": "http://github.com/jrburke"
-  },
-  "license": "BSD-3-Clause AND MIT",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/jrburke/amdefine.git"
-  },
-  "main": "./amdefine.js",
-  "engines": {
-    "node": ">=0.4.2"
-  },
-  "gitHead": "fcadcc8080f47084b973bac3b3c4b3dd3e0f957d",
-  "bugs": {
-    "url": "https://github.com/jrburke/amdefine/issues"
-  },
-  "_id": "amdefine@0.1.1",
-  "scripts": {},
-  "_shasum": "b5c75c532052dccd6a39c0064c772c8d57a06cd2",
-  "_from": "amdefine@>=0.0.4",
-  "_npmVersion": "1.4.28",
-  "_npmUser": {
-    "name": "jrburke",
-    "email": "jrburke@gmail.com"
-  },
-  "maintainers": [
-    {
-      "name": "jrburke",
-      "email": "jrburke@gmail.com"
-    }
-  ],
-  "dist": {
-    "shasum": "b5c75c532052dccd6a39c0064c772c8d57a06cd2",
-    "tarball": "http://registry.npmjs.org/amdefine/-/amdefine-0.1.1.tgz"
-  },
-  "directories": {},
-  "_resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.1.tgz"
-}
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/package.json b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/package.json
deleted file mode 100644 (file)
index b840ac5..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-{
-  "name": "source-map",
-  "description": "Generates and consumes source maps",
-  "version": "0.1.43",
-  "homepage": "https://github.com/mozilla/source-map",
-  "author": {
-    "name": "Nick Fitzgerald",
-    "email": "nfitzgerald@mozilla.com"
-  },
-  "contributors": [
-    {
-      "name": "Tobias Koppers",
-      "email": "tobias.koppers@googlemail.com"
-    },
-    {
-      "name": "Duncan Beevers",
-      "email": "duncan@dweebd.com"
-    },
-    {
-      "name": "Stephen Crane",
-      "email": "scrane@mozilla.com"
-    },
-    {
-      "name": "Ryan Seddon",
-      "email": "seddon.ryan@gmail.com"
-    },
-    {
-      "name": "Miles Elam",
-      "email": "miles.elam@deem.com"
-    },
-    {
-      "name": "Mihai Bazon",
-      "email": "mihai.bazon@gmail.com"
-    },
-    {
-      "name": "Michael Ficarra",
-      "email": "github.public.email@michael.ficarra.me"
-    },
-    {
-      "name": "Todd Wolfson",
-      "email": "todd@twolfson.com"
-    },
-    {
-      "name": "Alexander Solovyov",
-      "email": "alexander@solovyov.net"
-    },
-    {
-      "name": "Felix Gnass",
-      "email": "fgnass@gmail.com"
-    },
-    {
-      "name": "Conrad Irwin",
-      "email": "conrad.irwin@gmail.com"
-    },
-    {
-      "name": "usrbincc",
-      "email": "usrbincc@yahoo.com"
-    },
-    {
-      "name": "David Glasser",
-      "email": "glasser@davidglasser.net"
-    },
-    {
-      "name": "Chase Douglas",
-      "email": "chase@newrelic.com"
-    },
-    {
-      "name": "Evan Wallace",
-      "email": "evan.exe@gmail.com"
-    },
-    {
-      "name": "Heather Arthur",
-      "email": "fayearthur@gmail.com"
-    },
-    {
-      "name": "Hugh Kennedy",
-      "email": "hughskennedy@gmail.com"
-    },
-    {
-      "name": "David Glasser",
-      "email": "glasser@davidglasser.net"
-    },
-    {
-      "name": "Simon Lydell",
-      "email": "simon.lydell@gmail.com"
-    },
-    {
-      "name": "Jmeas Smith",
-      "email": "jellyes2@gmail.com"
-    },
-    {
-      "name": "Michael Z Goddard",
-      "email": "mzgoddard@gmail.com"
-    },
-    {
-      "name": "azu",
-      "email": "azu@users.noreply.github.com"
-    },
-    {
-      "name": "John Gozde",
-      "email": "john@gozde.ca"
-    },
-    {
-      "name": "Adam Kirkton",
-      "email": "akirkton@truefitinnovation.com"
-    },
-    {
-      "name": "Chris Montgomery",
-      "email": "christopher.montgomery@dowjones.com"
-    },
-    {
-      "name": "J. Ryan Stinnett",
-      "email": "jryans@gmail.com"
-    },
-    {
-      "name": "Jack Herrington",
-      "email": "jherrington@walmartlabs.com"
-    },
-    {
-      "name": "Chris Truter",
-      "email": "jeffpalentine@gmail.com"
-    },
-    {
-      "name": "Daniel Espeset",
-      "email": "daniel@danielespeset.com"
-    }
-  ],
-  "repository": {
-    "type": "git",
-    "url": "http://github.com/mozilla/source-map.git"
-  },
-  "directories": {
-    "lib": "./lib"
-  },
-  "main": "./lib/source-map.js",
-  "engines": {
-    "node": ">=0.8.0"
-  },
-  "licenses": [
-    {
-      "type": "BSD",
-      "url": "http://opensource.org/licenses/BSD-3-Clause"
-    }
-  ],
-  "dependencies": {
-    "amdefine": ">=0.0.4"
-  },
-  "devDependencies": {
-    "dryice": ">=0.4.8"
-  },
-  "scripts": {
-    "test": "node test/run-tests.js",
-    "build": "node Makefile.dryice.js"
-  },
-  "bugs": {
-    "url": "https://github.com/mozilla/source-map/issues"
-  },
-  "_id": "source-map@0.1.43",
-  "_shasum": "c24bc146ca517c1471f5dacbe2571b2b7f9e3346",
-  "_from": "source-map@>=0.1.43 <0.2.0",
-  "_npmVersion": "1.4.9",
-  "_npmUser": {
-    "name": "nickfitzgerald",
-    "email": "fitzgen@gmail.com"
-  },
-  "maintainers": [
-    {
-      "name": "mozilla-devtools",
-      "email": "mozilla-developer-tools@googlegroups.com"
-    },
-    {
-      "name": "mozilla",
-      "email": "dherman@mozilla.com"
-    },
-    {
-      "name": "nickfitzgerald",
-      "email": "fitzgen@gmail.com"
-    }
-  ],
-  "dist": {
-    "shasum": "c24bc146ca517c1471f5dacbe2571b2b7f9e3346",
-    "tarball": "http://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz"
-  },
-  "_resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz"
-}
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/run-tests.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/run-tests.js
deleted file mode 100755 (executable)
index 64a7c3a..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env node
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-var assert = require('assert');
-var fs = require('fs');
-var path = require('path');
-var util = require('./source-map/util');
-
-function run(tests) {
-  var total = 0;
-  var passed = 0;
-
-  for (var i = 0; i < tests.length; i++) {
-    for (var k in tests[i].testCase) {
-      if (/^test/.test(k)) {
-        total++;
-        try {
-          tests[i].testCase[k](assert, util);
-          passed++;
-        }
-        catch (e) {
-          console.log('FAILED ' + tests[i].name + ': ' + k + '!');
-          console.log(e.stack);
-        }
-      }
-    }
-  }
-
-  console.log('');
-  console.log(passed + ' / ' + total + ' tests passed.');
-  console.log('');
-
-  return total - passed;
-}
-
-function isTestFile(f) {
-  var testToRun = process.argv[2];
-  return testToRun
-    ? path.basename(testToRun) === f
-    : /^test\-.*?\.js/.test(f);
-}
-
-function toModule(f) {
-  return './source-map/' + f.replace(/\.js$/, '');
-}
-
-var requires = fs.readdirSync(path.join(__dirname, 'source-map'))
-  .filter(isTestFile)
-  .map(toModule);
-
-var code = run(requires.map(require).map(function (mod, i) {
-  return {
-    name: requires[i],
-    testCase: mod
-  };
-}));
-
-process.exit(code);
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-api.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-api.js
deleted file mode 100644 (file)
index 3801233..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2012 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var sourceMap;
-  try {
-    sourceMap = require('../../lib/source-map');
-  } catch (e) {
-    sourceMap = {};
-    Components.utils.import('resource:///modules/devtools/SourceMap.jsm', sourceMap);
-  }
-
-  exports['test that the api is properly exposed in the top level'] = function (assert, util) {
-    assert.equal(typeof sourceMap.SourceMapGenerator, "function");
-    assert.equal(typeof sourceMap.SourceMapConsumer, "function");
-    assert.equal(typeof sourceMap.SourceNode, "function");
-  };
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-array-set.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-array-set.js
deleted file mode 100644 (file)
index b5797ed..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var ArraySet = require('../../lib/source-map/array-set').ArraySet;
-
-  function makeTestSet() {
-    var set = new ArraySet();
-    for (var i = 0; i < 100; i++) {
-      set.add(String(i));
-    }
-    return set;
-  }
-
-  exports['test .has() membership'] = function (assert, util) {
-    var set = makeTestSet();
-    for (var i = 0; i < 100; i++) {
-      assert.ok(set.has(String(i)));
-    }
-  };
-
-  exports['test .indexOf() elements'] = function (assert, util) {
-    var set = makeTestSet();
-    for (var i = 0; i < 100; i++) {
-      assert.strictEqual(set.indexOf(String(i)), i);
-    }
-  };
-
-  exports['test .at() indexing'] = function (assert, util) {
-    var set = makeTestSet();
-    for (var i = 0; i < 100; i++) {
-      assert.strictEqual(set.at(i), String(i));
-    }
-  };
-
-  exports['test creating from an array'] = function (assert, util) {
-    var set = ArraySet.fromArray(['foo', 'bar', 'baz', 'quux', 'hasOwnProperty']);
-
-    assert.ok(set.has('foo'));
-    assert.ok(set.has('bar'));
-    assert.ok(set.has('baz'));
-    assert.ok(set.has('quux'));
-    assert.ok(set.has('hasOwnProperty'));
-
-    assert.strictEqual(set.indexOf('foo'), 0);
-    assert.strictEqual(set.indexOf('bar'), 1);
-    assert.strictEqual(set.indexOf('baz'), 2);
-    assert.strictEqual(set.indexOf('quux'), 3);
-
-    assert.strictEqual(set.at(0), 'foo');
-    assert.strictEqual(set.at(1), 'bar');
-    assert.strictEqual(set.at(2), 'baz');
-    assert.strictEqual(set.at(3), 'quux');
-  };
-
-  exports['test that you can add __proto__; see github issue #30'] = function (assert, util) {
-    var set = new ArraySet();
-    set.add('__proto__');
-    assert.ok(set.has('__proto__'));
-    assert.strictEqual(set.at(0), '__proto__');
-    assert.strictEqual(set.indexOf('__proto__'), 0);
-  };
-
-  exports['test .fromArray() with duplicates'] = function (assert, util) {
-    var set = ArraySet.fromArray(['foo', 'foo']);
-    assert.ok(set.has('foo'));
-    assert.strictEqual(set.at(0), 'foo');
-    assert.strictEqual(set.indexOf('foo'), 0);
-    assert.strictEqual(set.toArray().length, 1);
-
-    set = ArraySet.fromArray(['foo', 'foo'], true);
-    assert.ok(set.has('foo'));
-    assert.strictEqual(set.at(0), 'foo');
-    assert.strictEqual(set.at(1), 'foo');
-    assert.strictEqual(set.indexOf('foo'), 0);
-    assert.strictEqual(set.toArray().length, 2);
-  };
-
-  exports['test .add() with duplicates'] = function (assert, util) {
-    var set = new ArraySet();
-    set.add('foo');
-
-    set.add('foo');
-    assert.ok(set.has('foo'));
-    assert.strictEqual(set.at(0), 'foo');
-    assert.strictEqual(set.indexOf('foo'), 0);
-    assert.strictEqual(set.toArray().length, 1);
-
-    set.add('foo', true);
-    assert.ok(set.has('foo'));
-    assert.strictEqual(set.at(0), 'foo');
-    assert.strictEqual(set.at(1), 'foo');
-    assert.strictEqual(set.indexOf('foo'), 0);
-    assert.strictEqual(set.toArray().length, 2);
-  };
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-base64-vlq.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-base64-vlq.js
deleted file mode 100644 (file)
index 6fd0d99..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var base64VLQ = require('../../lib/source-map/base64-vlq');
-
-  exports['test normal encoding and decoding'] = function (assert, util) {
-    var result = {};
-    for (var i = -255; i < 256; i++) {
-      base64VLQ.decode(base64VLQ.encode(i), result);
-      assert.equal(result.value, i);
-      assert.equal(result.rest, "");
-    }
-  };
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-base64.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-base64.js
deleted file mode 100644 (file)
index ff3a244..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var base64 = require('../../lib/source-map/base64');
-
-  exports['test out of range encoding'] = function (assert, util) {
-    assert.throws(function () {
-      base64.encode(-1);
-    });
-    assert.throws(function () {
-      base64.encode(64);
-    });
-  };
-
-  exports['test out of range decoding'] = function (assert, util) {
-    assert.throws(function () {
-      base64.decode('=');
-    });
-  };
-
-  exports['test normal encoding and decoding'] = function (assert, util) {
-    for (var i = 0; i < 64; i++) {
-      assert.equal(base64.decode(base64.encode(i)), i);
-    }
-  };
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-binary-search.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-binary-search.js
deleted file mode 100644 (file)
index f1c9e0f..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var binarySearch = require('../../lib/source-map/binary-search');
-
-  function numberCompare(a, b) {
-    return a - b;
-  }
-
-  exports['test too high'] = function (assert, util) {
-    var needle = 30;
-    var haystack = [2,4,6,8,10,12,14,16,18,20];
-
-    assert.doesNotThrow(function () {
-      binarySearch.search(needle, haystack, numberCompare);
-    });
-
-    assert.equal(haystack[binarySearch.search(needle, haystack, numberCompare)], 20);
-  };
-
-  exports['test too low'] = function (assert, util) {
-    var needle = 1;
-    var haystack = [2,4,6,8,10,12,14,16,18,20];
-
-    assert.doesNotThrow(function () {
-      binarySearch.search(needle, haystack, numberCompare);
-    });
-
-    assert.equal(binarySearch.search(needle, haystack, numberCompare), -1);
-  };
-
-  exports['test exact search'] = function (assert, util) {
-    var needle = 4;
-    var haystack = [2,4,6,8,10,12,14,16,18,20];
-
-    assert.equal(haystack[binarySearch.search(needle, haystack, numberCompare)], 4);
-  };
-
-  exports['test fuzzy search'] = function (assert, util) {
-    var needle = 19;
-    var haystack = [2,4,6,8,10,12,14,16,18,20];
-
-    assert.equal(haystack[binarySearch.search(needle, haystack, numberCompare)], 18);
-  };
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-dog-fooding.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-dog-fooding.js
deleted file mode 100644 (file)
index 26757b2..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var SourceMapConsumer = require('../../lib/source-map/source-map-consumer').SourceMapConsumer;
-  var SourceMapGenerator = require('../../lib/source-map/source-map-generator').SourceMapGenerator;
-
-  exports['test eating our own dog food'] = function (assert, util) {
-    var smg = new SourceMapGenerator({
-      file: 'testing.js',
-      sourceRoot: '/wu/tang'
-    });
-
-    smg.addMapping({
-      source: 'gza.coffee',
-      original: { line: 1, column: 0 },
-      generated: { line: 2, column: 2 }
-    });
-
-    smg.addMapping({
-      source: 'gza.coffee',
-      original: { line: 2, column: 0 },
-      generated: { line: 3, column: 2 }
-    });
-
-    smg.addMapping({
-      source: 'gza.coffee',
-      original: { line: 3, column: 0 },
-      generated: { line: 4, column: 2 }
-    });
-
-    smg.addMapping({
-      source: 'gza.coffee',
-      original: { line: 4, column: 0 },
-      generated: { line: 5, column: 2 }
-    });
-
-    smg.addMapping({
-      source: 'gza.coffee',
-      original: { line: 5, column: 10 },
-      generated: { line: 6, column: 12 }
-    });
-
-    var smc = new SourceMapConsumer(smg.toString());
-
-    // Exact
-    util.assertMapping(2, 2, '/wu/tang/gza.coffee', 1, 0, null, smc, assert);
-    util.assertMapping(3, 2, '/wu/tang/gza.coffee', 2, 0, null, smc, assert);
-    util.assertMapping(4, 2, '/wu/tang/gza.coffee', 3, 0, null, smc, assert);
-    util.assertMapping(5, 2, '/wu/tang/gza.coffee', 4, 0, null, smc, assert);
-    util.assertMapping(6, 12, '/wu/tang/gza.coffee', 5, 10, null, smc, assert);
-
-    // Fuzzy
-
-    // Generated to original
-    util.assertMapping(2, 0, null, null, null, null, smc, assert, true);
-    util.assertMapping(2, 9, '/wu/tang/gza.coffee', 1, 0, null, smc, assert, true);
-    util.assertMapping(3, 0, null, null, null, null, smc, assert, true);
-    util.assertMapping(3, 9, '/wu/tang/gza.coffee', 2, 0, null, smc, assert, true);
-    util.assertMapping(4, 0, null, null, null, null, smc, assert, true);
-    util.assertMapping(4, 9, '/wu/tang/gza.coffee', 3, 0, null, smc, assert, true);
-    util.assertMapping(5, 0, null, null, null, null, smc, assert, true);
-    util.assertMapping(5, 9, '/wu/tang/gza.coffee', 4, 0, null, smc, assert, true);
-    util.assertMapping(6, 0, null, null, null, null, smc, assert, true);
-    util.assertMapping(6, 9, null, null, null, null, smc, assert, true);
-    util.assertMapping(6, 13, '/wu/tang/gza.coffee', 5, 10, null, smc, assert, true);
-
-    // Original to generated
-    util.assertMapping(2, 2, '/wu/tang/gza.coffee', 1, 1, null, smc, assert, null, true);
-    util.assertMapping(3, 2, '/wu/tang/gza.coffee', 2, 3, null, smc, assert, null, true);
-    util.assertMapping(4, 2, '/wu/tang/gza.coffee', 3, 6, null, smc, assert, null, true);
-    util.assertMapping(5, 2, '/wu/tang/gza.coffee', 4, 9, null, smc, assert, null, true);
-    util.assertMapping(5, 2, '/wu/tang/gza.coffee', 5, 9, null, smc, assert, null, true);
-    util.assertMapping(6, 12, '/wu/tang/gza.coffee', 6, 19, null, smc, assert, null, true);
-  };
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-source-map-consumer.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-source-map-consumer.js
deleted file mode 100644 (file)
index c714943..0000000
+++ /dev/null
@@ -1,702 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var SourceMapConsumer = require('../../lib/source-map/source-map-consumer').SourceMapConsumer;
-  var SourceMapGenerator = require('../../lib/source-map/source-map-generator').SourceMapGenerator;
-
-  exports['test that we can instantiate with a string or an object'] = function (assert, util) {
-    assert.doesNotThrow(function () {
-      var map = new SourceMapConsumer(util.testMap);
-    });
-    assert.doesNotThrow(function () {
-      var map = new SourceMapConsumer(JSON.stringify(util.testMap));
-    });
-  };
-
-  exports['test that the `sources` field has the original sources'] = function (assert, util) {
-    var map;
-    var sources;
-
-    map = new SourceMapConsumer(util.testMap);
-    sources = map.sources;
-    assert.equal(sources[0], '/the/root/one.js');
-    assert.equal(sources[1], '/the/root/two.js');
-    assert.equal(sources.length, 2);
-
-    map = new SourceMapConsumer(util.testMapNoSourceRoot);
-    sources = map.sources;
-    assert.equal(sources[0], 'one.js');
-    assert.equal(sources[1], 'two.js');
-    assert.equal(sources.length, 2);
-
-    map = new SourceMapConsumer(util.testMapEmptySourceRoot);
-    sources = map.sources;
-    assert.equal(sources[0], 'one.js');
-    assert.equal(sources[1], 'two.js');
-    assert.equal(sources.length, 2);
-  };
-
-  exports['test that the source root is reflected in a mapping\'s source field'] = function (assert, util) {
-    var map;
-    var mapping;
-
-    map = new SourceMapConsumer(util.testMap);
-
-    mapping = map.originalPositionFor({
-      line: 2,
-      column: 1
-    });
-    assert.equal(mapping.source, '/the/root/two.js');
-
-    mapping = map.originalPositionFor({
-      line: 1,
-      column: 1
-    });
-    assert.equal(mapping.source, '/the/root/one.js');
-
-
-    map = new SourceMapConsumer(util.testMapNoSourceRoot);
-
-    mapping = map.originalPositionFor({
-      line: 2,
-      column: 1
-    });
-    assert.equal(mapping.source, 'two.js');
-
-    mapping = map.originalPositionFor({
-      line: 1,
-      column: 1
-    });
-    assert.equal(mapping.source, 'one.js');
-
-
-    map = new SourceMapConsumer(util.testMapEmptySourceRoot);
-
-    mapping = map.originalPositionFor({
-      line: 2,
-      column: 1
-    });
-    assert.equal(mapping.source, 'two.js');
-
-    mapping = map.originalPositionFor({
-      line: 1,
-      column: 1
-    });
-    assert.equal(mapping.source, 'one.js');
-  };
-
-  exports['test mapping tokens back exactly'] = function (assert, util) {
-    var map = new SourceMapConsumer(util.testMap);
-
-    util.assertMapping(1, 1, '/the/root/one.js', 1, 1, null, map, assert);
-    util.assertMapping(1, 5, '/the/root/one.js', 1, 5, null, map, assert);
-    util.assertMapping(1, 9, '/the/root/one.js', 1, 11, null, map, assert);
-    util.assertMapping(1, 18, '/the/root/one.js', 1, 21, 'bar', map, assert);
-    util.assertMapping(1, 21, '/the/root/one.js', 2, 3, null, map, assert);
-    util.assertMapping(1, 28, '/the/root/one.js', 2, 10, 'baz', map, assert);
-    util.assertMapping(1, 32, '/the/root/one.js', 2, 14, 'bar', map, assert);
-
-    util.assertMapping(2, 1, '/the/root/two.js', 1, 1, null, map, assert);
-    util.assertMapping(2, 5, '/the/root/two.js', 1, 5, null, map, assert);
-    util.assertMapping(2, 9, '/the/root/two.js', 1, 11, null, map, assert);
-    util.assertMapping(2, 18, '/the/root/two.js', 1, 21, 'n', map, assert);
-    util.assertMapping(2, 21, '/the/root/two.js', 2, 3, null, map, assert);
-    util.assertMapping(2, 28, '/the/root/two.js', 2, 10, 'n', map, assert);
-  };
-
-  exports['test mapping tokens fuzzy'] = function (assert, util) {
-    var map = new SourceMapConsumer(util.testMap);
-
-    // Finding original positions
-    util.assertMapping(1, 20, '/the/root/one.js', 1, 21, 'bar', map, assert, true);
-    util.assertMapping(1, 30, '/the/root/one.js', 2, 10, 'baz', map, assert, true);
-    util.assertMapping(2, 12, '/the/root/two.js', 1, 11, null, map, assert, true);
-
-    // Finding generated positions
-    util.assertMapping(1, 18, '/the/root/one.js', 1, 22, 'bar', map, assert, null, true);
-    util.assertMapping(1, 28, '/the/root/one.js', 2, 13, 'baz', map, assert, null, true);
-    util.assertMapping(2, 9, '/the/root/two.js', 1, 16, null, map, assert, null, true);
-  };
-
-  exports['test mappings and end of lines'] = function (assert, util) {
-    var smg = new SourceMapGenerator({
-      file: 'foo.js'
-    });
-    smg.addMapping({
-      original: { line: 1, column: 1 },
-      generated: { line: 1, column: 1 },
-      source: 'bar.js'
-    });
-    smg.addMapping({
-      original: { line: 2, column: 2 },
-      generated: { line: 2, column: 2 },
-      source: 'bar.js'
-    });
-
-    var map = SourceMapConsumer.fromSourceMap(smg);
-
-    // When finding original positions, mappings end at the end of the line.
-    util.assertMapping(2, 1, null, null, null, null, map, assert, true)
-
-    // When finding generated positions, mappings do not end at the end of the line.
-    util.assertMapping(1, 1, 'bar.js', 2, 1, null, map, assert, null, true);
-  };
-
-  exports['test creating source map consumers with )]}\' prefix'] = function (assert, util) {
-    assert.doesNotThrow(function () {
-      var map = new SourceMapConsumer(")]}'" + JSON.stringify(util.testMap));
-    });
-  };
-
-  exports['test eachMapping'] = function (assert, util) {
-    var map;
-
-    map = new SourceMapConsumer(util.testMap);
-    var previousLine = -Infinity;
-    var previousColumn = -Infinity;
-    map.eachMapping(function (mapping) {
-      assert.ok(mapping.generatedLine >= previousLine);
-
-      assert.ok(mapping.source === '/the/root/one.js' || mapping.source === '/the/root/two.js');
-
-      if (mapping.generatedLine === previousLine) {
-        assert.ok(mapping.generatedColumn >= previousColumn);
-        previousColumn = mapping.generatedColumn;
-      }
-      else {
-        previousLine = mapping.generatedLine;
-        previousColumn = -Infinity;
-      }
-    });
-
-    map = new SourceMapConsumer(util.testMapNoSourceRoot);
-    map.eachMapping(function (mapping) {
-      assert.ok(mapping.source === 'one.js' || mapping.source === 'two.js');
-    });
-
-    map = new SourceMapConsumer(util.testMapEmptySourceRoot);
-    map.eachMapping(function (mapping) {
-      assert.ok(mapping.source === 'one.js' || mapping.source === 'two.js');
-    });
-  };
-
-  exports['test iterating over mappings in a different order'] = function (assert, util) {
-    var map = new SourceMapConsumer(util.testMap);
-    var previousLine = -Infinity;
-    var previousColumn = -Infinity;
-    var previousSource = "";
-    map.eachMapping(function (mapping) {
-      assert.ok(mapping.source >= previousSource);
-
-      if (mapping.source === previousSource) {
-        assert.ok(mapping.originalLine >= previousLine);
-
-        if (mapping.originalLine === previousLine) {
-          assert.ok(mapping.originalColumn >= previousColumn);
-          previousColumn = mapping.originalColumn;
-        }
-        else {
-          previousLine = mapping.originalLine;
-          previousColumn = -Infinity;
-        }
-      }
-      else {
-        previousSource = mapping.source;
-        previousLine = -Infinity;
-        previousColumn = -Infinity;
-      }
-    }, null, SourceMapConsumer.ORIGINAL_ORDER);
-  };
-
-  exports['test that we can set the context for `this` in eachMapping'] = function (assert, util) {
-    var map = new SourceMapConsumer(util.testMap);
-    var context = {};
-    map.eachMapping(function () {
-      assert.equal(this, context);
-    }, context);
-  };
-
-  exports['test that the `sourcesContent` field has the original sources'] = function (assert, util) {
-    var map = new SourceMapConsumer(util.testMapWithSourcesContent);
-    var sourcesContent = map.sourcesContent;
-
-    assert.equal(sourcesContent[0], ' ONE.foo = function (bar) {\n   return baz(bar);\n };');
-    assert.equal(sourcesContent[1], ' TWO.inc = function (n) {\n   return n + 1;\n };');
-    assert.equal(sourcesContent.length, 2);
-  };
-
-  exports['test that we can get the original sources for the sources'] = function (assert, util) {
-    var map = new SourceMapConsumer(util.testMapWithSourcesContent);
-    var sources = map.sources;
-
-    assert.equal(map.sourceContentFor(sources[0]), ' ONE.foo = function (bar) {\n   return baz(bar);\n };');
-    assert.equal(map.sourceContentFor(sources[1]), ' TWO.inc = function (n) {\n   return n + 1;\n };');
-    assert.equal(map.sourceContentFor("one.js"), ' ONE.foo = function (bar) {\n   return baz(bar);\n };');
-    assert.equal(map.sourceContentFor("two.js"), ' TWO.inc = function (n) {\n   return n + 1;\n };');
-    assert.throws(function () {
-      map.sourceContentFor("");
-    }, Error);
-    assert.throws(function () {
-      map.sourceContentFor("/the/root/three.js");
-    }, Error);
-    assert.throws(function () {
-      map.sourceContentFor("three.js");
-    }, Error);
-  };
-
-  exports['test that we can get the original source content with relative source paths'] = function (assert, util) {
-    var map = new SourceMapConsumer(util.testMapRelativeSources);
-    var sources = map.sources;
-
-    assert.equal(map.sourceContentFor(sources[0]), ' ONE.foo = function (bar) {\n   return baz(bar);\n };');
-    assert.equal(map.sourceContentFor(sources[1]), ' TWO.inc = function (n) {\n   return n + 1;\n };');
-    assert.equal(map.sourceContentFor("one.js"), ' ONE.foo = function (bar) {\n   return baz(bar);\n };');
-    assert.equal(map.sourceContentFor("two.js"), ' TWO.inc = function (n) {\n   return n + 1;\n };');
-    assert.throws(function () {
-      map.sourceContentFor("");
-    }, Error);
-    assert.throws(function () {
-      map.sourceContentFor("/the/root/three.js");
-    }, Error);
-    assert.throws(function () {
-      map.sourceContentFor("three.js");
-    }, Error);
-  };
-
-  exports['test sourceRoot + generatedPositionFor'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      sourceRoot: 'foo/bar',
-      file: 'baz.js'
-    });
-    map.addMapping({
-      original: { line: 1, column: 1 },
-      generated: { line: 2, column: 2 },
-      source: 'bang.coffee'
-    });
-    map.addMapping({
-      original: { line: 5, column: 5 },
-      generated: { line: 6, column: 6 },
-      source: 'bang.coffee'
-    });
-    map = new SourceMapConsumer(map.toString());
-
-    // Should handle without sourceRoot.
-    var pos = map.generatedPositionFor({
-      line: 1,
-      column: 1,
-      source: 'bang.coffee'
-    });
-
-    assert.equal(pos.line, 2);
-    assert.equal(pos.column, 2);
-
-    // Should handle with sourceRoot.
-    var pos = map.generatedPositionFor({
-      line: 1,
-      column: 1,
-      source: 'foo/bar/bang.coffee'
-    });
-
-    assert.equal(pos.line, 2);
-    assert.equal(pos.column, 2);
-  };
-
-  exports['test allGeneratedPositionsFor'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'generated.js'
-    });
-    map.addMapping({
-      original: { line: 1, column: 1 },
-      generated: { line: 2, column: 2 },
-      source: 'foo.coffee'
-    });
-    map.addMapping({
-      original: { line: 1, column: 1 },
-      generated: { line: 2, column: 2 },
-      source: 'bar.coffee'
-    });
-    map.addMapping({
-      original: { line: 2, column: 1 },
-      generated: { line: 3, column: 2 },
-      source: 'bar.coffee'
-    });
-    map.addMapping({
-      original: { line: 2, column: 2 },
-      generated: { line: 3, column: 3 },
-      source: 'bar.coffee'
-    });
-    map.addMapping({
-      original: { line: 3, column: 1 },
-      generated: { line: 4, column: 2 },
-      source: 'bar.coffee'
-    });
-    map = new SourceMapConsumer(map.toString());
-
-    var mappings = map.allGeneratedPositionsFor({
-      line: 2,
-      source: 'bar.coffee'
-    });
-
-    assert.equal(mappings.length, 2);
-    assert.equal(mappings[0].line, 3);
-    assert.equal(mappings[0].column, 2);
-    assert.equal(mappings[1].line, 3);
-    assert.equal(mappings[1].column, 3);
-  };
-
-  exports['test allGeneratedPositionsFor for line with no mappings'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'generated.js'
-    });
-    map.addMapping({
-      original: { line: 1, column: 1 },
-      generated: { line: 2, column: 2 },
-      source: 'foo.coffee'
-    });
-    map.addMapping({
-      original: { line: 1, column: 1 },
-      generated: { line: 2, column: 2 },
-      source: 'bar.coffee'
-    });
-    map.addMapping({
-      original: { line: 3, column: 1 },
-      generated: { line: 4, column: 2 },
-      source: 'bar.coffee'
-    });
-    map = new SourceMapConsumer(map.toString());
-
-    var mappings = map.allGeneratedPositionsFor({
-      line: 2,
-      source: 'bar.coffee'
-    });
-
-    assert.equal(mappings.length, 0);
-  };
-
-  exports['test allGeneratedPositionsFor source map with no mappings'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'generated.js'
-    });
-    map = new SourceMapConsumer(map.toString());
-
-    var mappings = map.allGeneratedPositionsFor({
-      line: 2,
-      source: 'bar.coffee'
-    });
-
-    assert.equal(mappings.length, 0);
-  };
-
-  exports['test computeColumnSpans'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'generated.js'
-    });
-    map.addMapping({
-      original: { line: 1, column: 1 },
-      generated: { line: 1, column: 1 },
-      source: 'foo.coffee'
-    });
-    map.addMapping({
-      original: { line: 2, column: 1 },
-      generated: { line: 2, column: 1 },
-      source: 'foo.coffee'
-    });
-    map.addMapping({
-      original: { line: 2, column: 2 },
-      generated: { line: 2, column: 10 },
-      source: 'foo.coffee'
-    });
-    map.addMapping({
-      original: { line: 2, column: 3 },
-      generated: { line: 2, column: 20 },
-      source: 'foo.coffee'
-    });
-    map.addMapping({
-      original: { line: 3, column: 1 },
-      generated: { line: 3, column: 1 },
-      source: 'foo.coffee'
-    });
-    map.addMapping({
-      original: { line: 3, column: 2 },
-      generated: { line: 3, column: 2 },
-      source: 'foo.coffee'
-    });
-    map = new SourceMapConsumer(map.toString());
-
-    map.computeColumnSpans();
-
-    var mappings = map.allGeneratedPositionsFor({
-      line: 1,
-      source: 'foo.coffee'
-    });
-
-    assert.equal(mappings.length, 1);
-    assert.equal(mappings[0].lastColumn, Infinity);
-
-    var mappings = map.allGeneratedPositionsFor({
-      line: 2,
-      source: 'foo.coffee'
-    });
-
-    assert.equal(mappings.length, 3);
-    assert.equal(mappings[0].lastColumn, 9);
-    assert.equal(mappings[1].lastColumn, 19);
-    assert.equal(mappings[2].lastColumn, Infinity);
-
-    var mappings = map.allGeneratedPositionsFor({
-      line: 3,
-      source: 'foo.coffee'
-    });
-
-    assert.equal(mappings.length, 2);
-    assert.equal(mappings[0].lastColumn, 1);
-    assert.equal(mappings[1].lastColumn, Infinity);
-  };
-
-  exports['test sourceRoot + originalPositionFor'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      sourceRoot: 'foo/bar',
-      file: 'baz.js'
-    });
-    map.addMapping({
-      original: { line: 1, column: 1 },
-      generated: { line: 2, column: 2 },
-      source: 'bang.coffee'
-    });
-    map = new SourceMapConsumer(map.toString());
-
-    var pos = map.originalPositionFor({
-      line: 2,
-      column: 2,
-    });
-
-    // Should always have the prepended source root
-    assert.equal(pos.source, 'foo/bar/bang.coffee');
-    assert.equal(pos.line, 1);
-    assert.equal(pos.column, 1);
-  };
-
-  exports['test github issue #56'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      sourceRoot: 'http://',
-      file: 'www.example.com/foo.js'
-    });
-    map.addMapping({
-      original: { line: 1, column: 1 },
-      generated: { line: 2, column: 2 },
-      source: 'www.example.com/original.js'
-    });
-    map = new SourceMapConsumer(map.toString());
-
-    var sources = map.sources;
-    assert.equal(sources.length, 1);
-    assert.equal(sources[0], 'http://www.example.com/original.js');
-  };
-
-  exports['test github issue #43'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      sourceRoot: 'http://example.com',
-      file: 'foo.js'
-    });
-    map.addMapping({
-      original: { line: 1, column: 1 },
-      generated: { line: 2, column: 2 },
-      source: 'http://cdn.example.com/original.js'
-    });
-    map = new SourceMapConsumer(map.toString());
-
-    var sources = map.sources;
-    assert.equal(sources.length, 1,
-                 'Should only be one source.');
-    assert.equal(sources[0], 'http://cdn.example.com/original.js',
-                 'Should not be joined with the sourceRoot.');
-  };
-
-  exports['test absolute path, but same host sources'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      sourceRoot: 'http://example.com/foo/bar',
-      file: 'foo.js'
-    });
-    map.addMapping({
-      original: { line: 1, column: 1 },
-      generated: { line: 2, column: 2 },
-      source: '/original.js'
-    });
-    map = new SourceMapConsumer(map.toString());
-
-    var sources = map.sources;
-    assert.equal(sources.length, 1,
-                 'Should only be one source.');
-    assert.equal(sources[0], 'http://example.com/original.js',
-                 'Source should be relative the host of the source root.');
-  };
-
-  exports['test github issue #64'] = function (assert, util) {
-    var map = new SourceMapConsumer({
-      "version": 3,
-      "file": "foo.js",
-      "sourceRoot": "http://example.com/",
-      "sources": ["/a"],
-      "names": [],
-      "mappings": "AACA",
-      "sourcesContent": ["foo"]
-    });
-
-    assert.equal(map.sourceContentFor("a"), "foo");
-    assert.equal(map.sourceContentFor("/a"), "foo");
-  };
-
-  exports['test bug 885597'] = function (assert, util) {
-    var map = new SourceMapConsumer({
-      "version": 3,
-      "file": "foo.js",
-      "sourceRoot": "file:///Users/AlGore/Invented/The/Internet/",
-      "sources": ["/a"],
-      "names": [],
-      "mappings": "AACA",
-      "sourcesContent": ["foo"]
-    });
-
-    var s = map.sources[0];
-    assert.equal(map.sourceContentFor(s), "foo");
-  };
-
-  exports['test github issue #72, duplicate sources'] = function (assert, util) {
-    var map = new SourceMapConsumer({
-      "version": 3,
-      "file": "foo.js",
-      "sources": ["source1.js", "source1.js", "source3.js"],
-      "names": [],
-      "mappings": ";EAAC;;IAEE;;MEEE",
-      "sourceRoot": "http://example.com"
-    });
-
-    var pos = map.originalPositionFor({
-      line: 2,
-      column: 2
-    });
-    assert.equal(pos.source, 'http://example.com/source1.js');
-    assert.equal(pos.line, 1);
-    assert.equal(pos.column, 1);
-
-    var pos = map.originalPositionFor({
-      line: 4,
-      column: 4
-    });
-    assert.equal(pos.source, 'http://example.com/source1.js');
-    assert.equal(pos.line, 3);
-    assert.equal(pos.column, 3);
-
-    var pos = map.originalPositionFor({
-      line: 6,
-      column: 6
-    });
-    assert.equal(pos.source, 'http://example.com/source3.js');
-    assert.equal(pos.line, 5);
-    assert.equal(pos.column, 5);
-  };
-
-  exports['test github issue #72, duplicate names'] = function (assert, util) {
-    var map = new SourceMapConsumer({
-      "version": 3,
-      "file": "foo.js",
-      "sources": ["source.js"],
-      "names": ["name1", "name1", "name3"],
-      "mappings": ";EAACA;;IAEEA;;MAEEE",
-      "sourceRoot": "http://example.com"
-    });
-
-    var pos = map.originalPositionFor({
-      line: 2,
-      column: 2
-    });
-    assert.equal(pos.name, 'name1');
-    assert.equal(pos.line, 1);
-    assert.equal(pos.column, 1);
-
-    var pos = map.originalPositionFor({
-      line: 4,
-      column: 4
-    });
-    assert.equal(pos.name, 'name1');
-    assert.equal(pos.line, 3);
-    assert.equal(pos.column, 3);
-
-    var pos = map.originalPositionFor({
-      line: 6,
-      column: 6
-    });
-    assert.equal(pos.name, 'name3');
-    assert.equal(pos.line, 5);
-    assert.equal(pos.column, 5);
-  };
-
-  exports['test SourceMapConsumer.fromSourceMap'] = function (assert, util) {
-    var smg = new SourceMapGenerator({
-      sourceRoot: 'http://example.com/',
-      file: 'foo.js'
-    });
-    smg.addMapping({
-      original: { line: 1, column: 1 },
-      generated: { line: 2, column: 2 },
-      source: 'bar.js'
-    });
-    smg.addMapping({
-      original: { line: 2, column: 2 },
-      generated: { line: 4, column: 4 },
-      source: 'baz.js',
-      name: 'dirtMcGirt'
-    });
-    smg.setSourceContent('baz.js', 'baz.js content');
-
-    var smc = SourceMapConsumer.fromSourceMap(smg);
-    assert.equal(smc.file, 'foo.js');
-    assert.equal(smc.sourceRoot, 'http://example.com/');
-    assert.equal(smc.sources.length, 2);
-    assert.equal(smc.sources[0], 'http://example.com/bar.js');
-    assert.equal(smc.sources[1], 'http://example.com/baz.js');
-    assert.equal(smc.sourceContentFor('baz.js'), 'baz.js content');
-
-    var pos = smc.originalPositionFor({
-      line: 2,
-      column: 2
-    });
-    assert.equal(pos.line, 1);
-    assert.equal(pos.column, 1);
-    assert.equal(pos.source, 'http://example.com/bar.js');
-    assert.equal(pos.name, null);
-
-    pos = smc.generatedPositionFor({
-      line: 1,
-      column: 1,
-      source: 'http://example.com/bar.js'
-    });
-    assert.equal(pos.line, 2);
-    assert.equal(pos.column, 2);
-
-    pos = smc.originalPositionFor({
-      line: 4,
-      column: 4
-    });
-    assert.equal(pos.line, 2);
-    assert.equal(pos.column, 2);
-    assert.equal(pos.source, 'http://example.com/baz.js');
-    assert.equal(pos.name, 'dirtMcGirt');
-
-    pos = smc.generatedPositionFor({
-      line: 2,
-      column: 2,
-      source: 'http://example.com/baz.js'
-    });
-    assert.equal(pos.line, 4);
-    assert.equal(pos.column, 4);
-  };
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-source-map-generator.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-source-map-generator.js
deleted file mode 100644 (file)
index d748bb1..0000000
+++ /dev/null
@@ -1,679 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var SourceMapGenerator = require('../../lib/source-map/source-map-generator').SourceMapGenerator;
-  var SourceMapConsumer = require('../../lib/source-map/source-map-consumer').SourceMapConsumer;
-  var SourceNode = require('../../lib/source-map/source-node').SourceNode;
-  var util = require('./util');
-
-  exports['test some simple stuff'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'foo.js',
-      sourceRoot: '.'
-    });
-    assert.ok(true);
-
-    var map = new SourceMapGenerator().toJSON();
-    assert.ok(!('file' in map));
-    assert.ok(!('sourceRoot' in map));
-  };
-
-  exports['test JSON serialization'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'foo.js',
-      sourceRoot: '.'
-    });
-    assert.equal(map.toString(), JSON.stringify(map));
-  };
-
-  exports['test adding mappings (case 1)'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'generated-foo.js',
-      sourceRoot: '.'
-    });
-
-    assert.doesNotThrow(function () {
-      map.addMapping({
-        generated: { line: 1, column: 1 }
-      });
-    });
-  };
-
-  exports['test adding mappings (case 2)'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'generated-foo.js',
-      sourceRoot: '.'
-    });
-
-    assert.doesNotThrow(function () {
-      map.addMapping({
-        generated: { line: 1, column: 1 },
-        source: 'bar.js',
-        original: { line: 1, column: 1 }
-      });
-    });
-  };
-
-  exports['test adding mappings (case 3)'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'generated-foo.js',
-      sourceRoot: '.'
-    });
-
-    assert.doesNotThrow(function () {
-      map.addMapping({
-        generated: { line: 1, column: 1 },
-        source: 'bar.js',
-        original: { line: 1, column: 1 },
-        name: 'someToken'
-      });
-    });
-  };
-
-  exports['test adding mappings (invalid)'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'generated-foo.js',
-      sourceRoot: '.'
-    });
-
-    // Not enough info.
-    assert.throws(function () {
-      map.addMapping({});
-    });
-
-    // Original file position, but no source.
-    assert.throws(function () {
-      map.addMapping({
-        generated: { line: 1, column: 1 },
-        original: { line: 1, column: 1 }
-      });
-    });
-  };
-
-  exports['test adding mappings with skipValidation'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'generated-foo.js',
-      sourceRoot: '.',
-      skipValidation: true
-    });
-
-    // Not enough info, caught by `util.getArgs`
-    assert.throws(function () {
-      map.addMapping({});
-    });
-
-    // Original file position, but no source. Not checked.
-    assert.doesNotThrow(function () {
-      map.addMapping({
-        generated: { line: 1, column: 1 },
-        original: { line: 1, column: 1 }
-      });
-    });
-  };
-
-  exports['test that the correct mappings are being generated'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'min.js',
-      sourceRoot: '/the/root'
-    });
-
-    map.addMapping({
-      generated: { line: 1, column: 1 },
-      original: { line: 1, column: 1 },
-      source: 'one.js'
-    });
-    map.addMapping({
-      generated: { line: 1, column: 5 },
-      original: { line: 1, column: 5 },
-      source: 'one.js'
-    });
-    map.addMapping({
-      generated: { line: 1, column: 9 },
-      original: { line: 1, column: 11 },
-      source: 'one.js'
-    });
-    map.addMapping({
-      generated: { line: 1, column: 18 },
-      original: { line: 1, column: 21 },
-      source: 'one.js',
-      name: 'bar'
-    });
-    map.addMapping({
-      generated: { line: 1, column: 21 },
-      original: { line: 2, column: 3 },
-      source: 'one.js'
-    });
-    map.addMapping({
-      generated: { line: 1, column: 28 },
-      original: { line: 2, column: 10 },
-      source: 'one.js',
-      name: 'baz'
-    });
-    map.addMapping({
-      generated: { line: 1, column: 32 },
-      original: { line: 2, column: 14 },
-      source: 'one.js',
-      name: 'bar'
-    });
-
-    map.addMapping({
-      generated: { line: 2, column: 1 },
-      original: { line: 1, column: 1 },
-      source: 'two.js'
-    });
-    map.addMapping({
-      generated: { line: 2, column: 5 },
-      original: { line: 1, column: 5 },
-      source: 'two.js'
-    });
-    map.addMapping({
-      generated: { line: 2, column: 9 },
-      original: { line: 1, column: 11 },
-      source: 'two.js'
-    });
-    map.addMapping({
-      generated: { line: 2, column: 18 },
-      original: { line: 1, column: 21 },
-      source: 'two.js',
-      name: 'n'
-    });
-    map.addMapping({
-      generated: { line: 2, column: 21 },
-      original: { line: 2, column: 3 },
-      source: 'two.js'
-    });
-    map.addMapping({
-      generated: { line: 2, column: 28 },
-      original: { line: 2, column: 10 },
-      source: 'two.js',
-      name: 'n'
-    });
-
-    map = JSON.parse(map.toString());
-
-    util.assertEqualMaps(assert, map, util.testMap);
-  };
-
-  exports['test that adding a mapping with an empty string name does not break generation'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'generated-foo.js',
-      sourceRoot: '.'
-    });
-
-    map.addMapping({
-      generated: { line: 1, column: 1 },
-      source: 'bar.js',
-      original: { line: 1, column: 1 },
-      name: ''
-    });
-
-    assert.doesNotThrow(function () {
-      JSON.parse(map.toString());
-    });
-  };
-
-  exports['test that source content can be set'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'min.js',
-      sourceRoot: '/the/root'
-    });
-    map.addMapping({
-      generated: { line: 1, column: 1 },
-      original: { line: 1, column: 1 },
-      source: 'one.js'
-    });
-    map.addMapping({
-      generated: { line: 2, column: 1 },
-      original: { line: 1, column: 1 },
-      source: 'two.js'
-    });
-    map.setSourceContent('one.js', 'one file content');
-
-    map = JSON.parse(map.toString());
-    assert.equal(map.sources[0], 'one.js');
-    assert.equal(map.sources[1], 'two.js');
-    assert.equal(map.sourcesContent[0], 'one file content');
-    assert.equal(map.sourcesContent[1], null);
-  };
-
-  exports['test .fromSourceMap'] = function (assert, util) {
-    var map = SourceMapGenerator.fromSourceMap(new SourceMapConsumer(util.testMap));
-    util.assertEqualMaps(assert, map.toJSON(), util.testMap);
-  };
-
-  exports['test .fromSourceMap with sourcesContent'] = function (assert, util) {
-    var map = SourceMapGenerator.fromSourceMap(
-      new SourceMapConsumer(util.testMapWithSourcesContent));
-    util.assertEqualMaps(assert, map.toJSON(), util.testMapWithSourcesContent);
-  };
-
-  exports['test applySourceMap'] = function (assert, util) {
-    var node = new SourceNode(null, null, null, [
-      new SourceNode(2, 0, 'fileX', 'lineX2\n'),
-      'genA1\n',
-      new SourceNode(2, 0, 'fileY', 'lineY2\n'),
-      'genA2\n',
-      new SourceNode(1, 0, 'fileX', 'lineX1\n'),
-      'genA3\n',
-      new SourceNode(1, 0, 'fileY', 'lineY1\n')
-    ]);
-    var mapStep1 = node.toStringWithSourceMap({
-      file: 'fileA'
-    }).map;
-    mapStep1.setSourceContent('fileX', 'lineX1\nlineX2\n');
-    mapStep1 = mapStep1.toJSON();
-
-    node = new SourceNode(null, null, null, [
-      'gen1\n',
-      new SourceNode(1, 0, 'fileA', 'lineA1\n'),
-      new SourceNode(2, 0, 'fileA', 'lineA2\n'),
-      new SourceNode(3, 0, 'fileA', 'lineA3\n'),
-      new SourceNode(4, 0, 'fileA', 'lineA4\n'),
-      new SourceNode(1, 0, 'fileB', 'lineB1\n'),
-      new SourceNode(2, 0, 'fileB', 'lineB2\n'),
-      'gen2\n'
-    ]);
-    var mapStep2 = node.toStringWithSourceMap({
-      file: 'fileGen'
-    }).map;
-    mapStep2.setSourceContent('fileB', 'lineB1\nlineB2\n');
-    mapStep2 = mapStep2.toJSON();
-
-    node = new SourceNode(null, null, null, [
-      'gen1\n',
-      new SourceNode(2, 0, 'fileX', 'lineA1\n'),
-      new SourceNode(2, 0, 'fileA', 'lineA2\n'),
-      new SourceNode(2, 0, 'fileY', 'lineA3\n'),
-      new SourceNode(4, 0, 'fileA', 'lineA4\n'),
-      new SourceNode(1, 0, 'fileB', 'lineB1\n'),
-      new SourceNode(2, 0, 'fileB', 'lineB2\n'),
-      'gen2\n'
-    ]);
-    var expectedMap = node.toStringWithSourceMap({
-      file: 'fileGen'
-    }).map;
-    expectedMap.setSourceContent('fileX', 'lineX1\nlineX2\n');
-    expectedMap.setSourceContent('fileB', 'lineB1\nlineB2\n');
-    expectedMap = expectedMap.toJSON();
-
-    // apply source map "mapStep1" to "mapStep2"
-    var generator = SourceMapGenerator.fromSourceMap(new SourceMapConsumer(mapStep2));
-    generator.applySourceMap(new SourceMapConsumer(mapStep1));
-    var actualMap = generator.toJSON();
-
-    util.assertEqualMaps(assert, actualMap, expectedMap);
-  };
-
-  exports['test applySourceMap throws when file is missing'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'test.js'
-    });
-    var map2 = new SourceMapGenerator();
-    assert.throws(function() {
-      map.applySourceMap(new SourceMapConsumer(map2.toJSON()));
-    });
-  };
-
-  exports['test the two additional parameters of applySourceMap'] = function (assert, util) {
-    // Assume the following directory structure:
-    //
-    // http://foo.org/
-    //   bar.coffee
-    //   app/
-    //     coffee/
-    //       foo.coffee
-    //     temp/
-    //       bundle.js
-    //       temp_maps/
-    //         bundle.js.map
-    //     public/
-    //       bundle.min.js
-    //       bundle.min.js.map
-    //
-    // http://www.example.com/
-    //   baz.coffee
-
-    var bundleMap = new SourceMapGenerator({
-      file: 'bundle.js'
-    });
-    bundleMap.addMapping({
-      generated: { line: 3, column: 3 },
-      original: { line: 2, column: 2 },
-      source: '../../coffee/foo.coffee'
-    });
-    bundleMap.setSourceContent('../../coffee/foo.coffee', 'foo coffee');
-    bundleMap.addMapping({
-      generated: { line: 13, column: 13 },
-      original: { line: 12, column: 12 },
-      source: '/bar.coffee'
-    });
-    bundleMap.setSourceContent('/bar.coffee', 'bar coffee');
-    bundleMap.addMapping({
-      generated: { line: 23, column: 23 },
-      original: { line: 22, column: 22 },
-      source: 'http://www.example.com/baz.coffee'
-    });
-    bundleMap.setSourceContent(
-      'http://www.example.com/baz.coffee',
-      'baz coffee'
-    );
-    bundleMap = new SourceMapConsumer(bundleMap.toJSON());
-
-    var minifiedMap = new SourceMapGenerator({
-      file: 'bundle.min.js',
-      sourceRoot: '..'
-    });
-    minifiedMap.addMapping({
-      generated: { line: 1, column: 1 },
-      original: { line: 3, column: 3 },
-      source: 'temp/bundle.js'
-    });
-    minifiedMap.addMapping({
-      generated: { line: 11, column: 11 },
-      original: { line: 13, column: 13 },
-      source: 'temp/bundle.js'
-    });
-    minifiedMap.addMapping({
-      generated: { line: 21, column: 21 },
-      original: { line: 23, column: 23 },
-      source: 'temp/bundle.js'
-    });
-    minifiedMap = new SourceMapConsumer(minifiedMap.toJSON());
-
-    var expectedMap = function (sources) {
-      var map = new SourceMapGenerator({
-        file: 'bundle.min.js',
-        sourceRoot: '..'
-      });
-      map.addMapping({
-        generated: { line: 1, column: 1 },
-        original: { line: 2, column: 2 },
-        source: sources[0]
-      });
-      map.setSourceContent(sources[0], 'foo coffee');
-      map.addMapping({
-        generated: { line: 11, column: 11 },
-        original: { line: 12, column: 12 },
-        source: sources[1]
-      });
-      map.setSourceContent(sources[1], 'bar coffee');
-      map.addMapping({
-        generated: { line: 21, column: 21 },
-        original: { line: 22, column: 22 },
-        source: sources[2]
-      });
-      map.setSourceContent(sources[2], 'baz coffee');
-      return map.toJSON();
-    }
-
-    var actualMap = function (aSourceMapPath) {
-      var map = SourceMapGenerator.fromSourceMap(minifiedMap);
-      // Note that relying on `bundleMap.file` (which is simply 'bundle.js')
-      // instead of supplying the second parameter wouldn't work here.
-      map.applySourceMap(bundleMap, '../temp/bundle.js', aSourceMapPath);
-      return map.toJSON();
-    }
-
-    util.assertEqualMaps(assert, actualMap('../temp/temp_maps'), expectedMap([
-      'coffee/foo.coffee',
-      '/bar.coffee',
-      'http://www.example.com/baz.coffee'
-    ]));
-
-    util.assertEqualMaps(assert, actualMap('/app/temp/temp_maps'), expectedMap([
-      '/app/coffee/foo.coffee',
-      '/bar.coffee',
-      'http://www.example.com/baz.coffee'
-    ]));
-
-    util.assertEqualMaps(assert, actualMap('http://foo.org/app/temp/temp_maps'), expectedMap([
-      'http://foo.org/app/coffee/foo.coffee',
-      'http://foo.org/bar.coffee',
-      'http://www.example.com/baz.coffee'
-    ]));
-
-    // If the third parameter is omitted or set to the current working
-    // directory we get incorrect source paths:
-
-    util.assertEqualMaps(assert, actualMap(), expectedMap([
-      '../coffee/foo.coffee',
-      '/bar.coffee',
-      'http://www.example.com/baz.coffee'
-    ]));
-
-    util.assertEqualMaps(assert, actualMap(''), expectedMap([
-      '../coffee/foo.coffee',
-      '/bar.coffee',
-      'http://www.example.com/baz.coffee'
-    ]));
-
-    util.assertEqualMaps(assert, actualMap('.'), expectedMap([
-      '../coffee/foo.coffee',
-      '/bar.coffee',
-      'http://www.example.com/baz.coffee'
-    ]));
-
-    util.assertEqualMaps(assert, actualMap('./'), expectedMap([
-      '../coffee/foo.coffee',
-      '/bar.coffee',
-      'http://www.example.com/baz.coffee'
-    ]));
-  };
-
-  exports['test applySourceMap name handling'] = function (assert, util) {
-    // Imagine some CoffeeScript code being compiled into JavaScript and then
-    // minified.
-
-    var assertName = function(coffeeName, jsName, expectedName) {
-      var minifiedMap = new SourceMapGenerator({
-        file: 'test.js.min'
-      });
-      minifiedMap.addMapping({
-        generated: { line: 1, column: 4 },
-        original: { line: 1, column: 4 },
-        source: 'test.js',
-        name: jsName
-      });
-
-      var coffeeMap = new SourceMapGenerator({
-        file: 'test.js'
-      });
-      coffeeMap.addMapping({
-        generated: { line: 1, column: 4 },
-        original: { line: 1, column: 0 },
-        source: 'test.coffee',
-        name: coffeeName
-      });
-
-      minifiedMap.applySourceMap(new SourceMapConsumer(coffeeMap.toJSON()));
-
-      new SourceMapConsumer(minifiedMap.toJSON()).eachMapping(function(mapping) {
-        assert.equal(mapping.name, expectedName);
-      });
-    };
-
-    // `foo = 1` -> `var foo = 1;` -> `var a=1`
-    // CoffeeScript doesn’t rename variables, so there’s no need for it to
-    // provide names in its source maps. Minifiers do rename variables and
-    // therefore do provide names in their source maps. So that name should be
-    // retained if the original map lacks names.
-    assertName(null, 'foo', 'foo');
-
-    // `foo = 1` -> `var coffee$foo = 1;` -> `var a=1`
-    // Imagine that CoffeeScript prefixed all variables with `coffee$`. Even
-    // though the minifier then also provides a name, the original name is
-    // what corresponds to the source.
-    assertName('foo', 'coffee$foo', 'foo');
-
-    // `foo = 1` -> `var coffee$foo = 1;` -> `var coffee$foo=1`
-    // Minifiers can turn off variable mangling. Then there’s no need to
-    // provide names in the source map, but the names from the original map are
-    // still needed.
-    assertName('foo', null, 'foo');
-
-    // `foo = 1` -> `var foo = 1;` -> `var foo=1`
-    // No renaming at all.
-    assertName(null, null, null);
-  };
-
-  exports['test sorting with duplicate generated mappings'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'test.js'
-    });
-    map.addMapping({
-      generated: { line: 3, column: 0 },
-      original: { line: 2, column: 0 },
-      source: 'a.js'
-    });
-    map.addMapping({
-      generated: { line: 2, column: 0 }
-    });
-    map.addMapping({
-      generated: { line: 2, column: 0 }
-    });
-    map.addMapping({
-      generated: { line: 1, column: 0 },
-      original: { line: 1, column: 0 },
-      source: 'a.js'
-    });
-
-    util.assertEqualMaps(assert, map.toJSON(), {
-      version: 3,
-      file: 'test.js',
-      sources: ['a.js'],
-      names: [],
-      mappings: 'AAAA;A;AACA'
-    });
-  };
-
-  exports['test ignore duplicate mappings.'] = function (assert, util) {
-    var init = { file: 'min.js', sourceRoot: '/the/root' };
-    var map1, map2;
-
-    // null original source location
-    var nullMapping1 = {
-      generated: { line: 1, column: 0 }
-    };
-    var nullMapping2 = {
-      generated: { line: 2, column: 2 }
-    };
-
-    map1 = new SourceMapGenerator(init);
-    map2 = new SourceMapGenerator(init);
-
-    map1.addMapping(nullMapping1);
-    map1.addMapping(nullMapping1);
-
-    map2.addMapping(nullMapping1);
-
-    util.assertEqualMaps(assert, map1.toJSON(), map2.toJSON());
-
-    map1.addMapping(nullMapping2);
-    map1.addMapping(nullMapping1);
-
-    map2.addMapping(nullMapping2);
-
-    util.assertEqualMaps(assert, map1.toJSON(), map2.toJSON());
-
-    // original source location
-    var srcMapping1 = {
-      generated: { line: 1, column: 0 },
-      original: { line: 11, column: 0 },
-      source: 'srcMapping1.js'
-    };
-    var srcMapping2 = {
-      generated: { line: 2, column: 2 },
-      original: { line: 11, column: 0 },
-      source: 'srcMapping2.js'
-    };
-
-    map1 = new SourceMapGenerator(init);
-    map2 = new SourceMapGenerator(init);
-
-    map1.addMapping(srcMapping1);
-    map1.addMapping(srcMapping1);
-
-    map2.addMapping(srcMapping1);
-
-    util.assertEqualMaps(assert, map1.toJSON(), map2.toJSON());
-
-    map1.addMapping(srcMapping2);
-    map1.addMapping(srcMapping1);
-
-    map2.addMapping(srcMapping2);
-
-    util.assertEqualMaps(assert, map1.toJSON(), map2.toJSON());
-
-    // full original source and name information
-    var fullMapping1 = {
-      generated: { line: 1, column: 0 },
-      original: { line: 11, column: 0 },
-      source: 'fullMapping1.js',
-      name: 'fullMapping1'
-    };
-    var fullMapping2 = {
-      generated: { line: 2, column: 2 },
-      original: { line: 11, column: 0 },
-      source: 'fullMapping2.js',
-      name: 'fullMapping2'
-    };
-
-    map1 = new SourceMapGenerator(init);
-    map2 = new SourceMapGenerator(init);
-
-    map1.addMapping(fullMapping1);
-    map1.addMapping(fullMapping1);
-
-    map2.addMapping(fullMapping1);
-
-    util.assertEqualMaps(assert, map1.toJSON(), map2.toJSON());
-
-    map1.addMapping(fullMapping2);
-    map1.addMapping(fullMapping1);
-
-    map2.addMapping(fullMapping2);
-
-    util.assertEqualMaps(assert, map1.toJSON(), map2.toJSON());
-  };
-
-  exports['test github issue #72, check for duplicate names or sources'] = function (assert, util) {
-    var map = new SourceMapGenerator({
-      file: 'test.js'
-    });
-    map.addMapping({
-      generated: { line: 1, column: 1 },
-      original: { line: 2, column: 2 },
-      source: 'a.js',
-      name: 'foo'
-    });
-    map.addMapping({
-      generated: { line: 3, column: 3 },
-      original: { line: 4, column: 4 },
-      source: 'a.js',
-      name: 'foo'
-    });
-    util.assertEqualMaps(assert, map.toJSON(), {
-      version: 3,
-      file: 'test.js',
-      sources: ['a.js'],
-      names: ['foo'],
-      mappings: 'CACEA;;GAEEA'
-    });
-  };
-
-  exports['test setting sourcesContent to null when already null'] = function (assert, util) {
-    var smg = new SourceMapGenerator({ file: "foo.js" });
-    assert.doesNotThrow(function() {
-      smg.setSourceContent("bar.js", null);
-    });
-  };
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-source-node.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-source-node.js
deleted file mode 100644 (file)
index 139af4e..0000000
+++ /dev/null
@@ -1,612 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var SourceMapGenerator = require('../../lib/source-map/source-map-generator').SourceMapGenerator;
-  var SourceMapConsumer = require('../../lib/source-map/source-map-consumer').SourceMapConsumer;
-  var SourceNode = require('../../lib/source-map/source-node').SourceNode;
-
-  function forEachNewline(fn) {
-    return function (assert, util) {
-      ['\n', '\r\n'].forEach(fn.bind(null, assert, util));
-    }
-  }
-
-  exports['test .add()'] = function (assert, util) {
-    var node = new SourceNode(null, null, null);
-
-    // Adding a string works.
-    node.add('function noop() {}');
-
-    // Adding another source node works.
-    node.add(new SourceNode(null, null, null));
-
-    // Adding an array works.
-    node.add(['function foo() {',
-              new SourceNode(null, null, null,
-                             'return 10;'),
-              '}']);
-
-    // Adding other stuff doesn't.
-    assert.throws(function () {
-      node.add({});
-    });
-    assert.throws(function () {
-      node.add(function () {});
-    });
-  };
-
-  exports['test .prepend()'] = function (assert, util) {
-    var node = new SourceNode(null, null, null);
-
-    // Prepending a string works.
-    node.prepend('function noop() {}');
-    assert.equal(node.children[0], 'function noop() {}');
-    assert.equal(node.children.length, 1);
-
-    // Prepending another source node works.
-    node.prepend(new SourceNode(null, null, null));
-    assert.equal(node.children[0], '');
-    assert.equal(node.children[1], 'function noop() {}');
-    assert.equal(node.children.length, 2);
-
-    // Prepending an array works.
-    node.prepend(['function foo() {',
-              new SourceNode(null, null, null,
-                             'return 10;'),
-              '}']);
-    assert.equal(node.children[0], 'function foo() {');
-    assert.equal(node.children[1], 'return 10;');
-    assert.equal(node.children[2], '}');
-    assert.equal(node.children[3], '');
-    assert.equal(node.children[4], 'function noop() {}');
-    assert.equal(node.children.length, 5);
-
-    // Prepending other stuff doesn't.
-    assert.throws(function () {
-      node.prepend({});
-    });
-    assert.throws(function () {
-      node.prepend(function () {});
-    });
-  };
-
-  exports['test .toString()'] = function (assert, util) {
-    assert.equal((new SourceNode(null, null, null,
-                                 ['function foo() {',
-                                  new SourceNode(null, null, null, 'return 10;'),
-                                  '}'])).toString(),
-                 'function foo() {return 10;}');
-  };
-
-  exports['test .join()'] = function (assert, util) {
-    assert.equal((new SourceNode(null, null, null,
-                                 ['a', 'b', 'c', 'd'])).join(', ').toString(),
-                 'a, b, c, d');
-  };
-
-  exports['test .walk()'] = function (assert, util) {
-    var node = new SourceNode(null, null, null,
-                              ['(function () {\n',
-                               '  ', new SourceNode(1, 0, 'a.js', ['someCall()']), ';\n',
-                               '  ', new SourceNode(2, 0, 'b.js', ['if (foo) bar()']), ';\n',
-                               '}());']);
-    var expected = [
-      { str: '(function () {\n', source: null,   line: null, column: null },
-      { str: '  ',               source: null,   line: null, column: null },
-      { str: 'someCall()',       source: 'a.js', line: 1,    column: 0    },
-      { str: ';\n',              source: null,   line: null, column: null },
-      { str: '  ',               source: null,   line: null, column: null },
-      { str: 'if (foo) bar()',   source: 'b.js', line: 2,    column: 0    },
-      { str: ';\n',              source: null,   line: null, column: null },
-      { str: '}());',            source: null,   line: null, column: null },
-    ];
-    var i = 0;
-    node.walk(function (chunk, loc) {
-      assert.equal(expected[i].str, chunk);
-      assert.equal(expected[i].source, loc.source);
-      assert.equal(expected[i].line, loc.line);
-      assert.equal(expected[i].column, loc.column);
-      i++;
-    });
-  };
-
-  exports['test .replaceRight'] = function (assert, util) {
-    var node;
-
-    // Not nested
-    node = new SourceNode(null, null, null, 'hello world');
-    node.replaceRight(/world/, 'universe');
-    assert.equal(node.toString(), 'hello universe');
-
-    // Nested
-    node = new SourceNode(null, null, null,
-                          [new SourceNode(null, null, null, 'hey sexy mama, '),
-                           new SourceNode(null, null, null, 'want to kill all humans?')]);
-    node.replaceRight(/kill all humans/, 'watch Futurama');
-    assert.equal(node.toString(), 'hey sexy mama, want to watch Futurama?');
-  };
-
-  exports['test .toStringWithSourceMap()'] = forEachNewline(function (assert, util, nl) {
-    var node = new SourceNode(null, null, null,
-                              ['(function () {' + nl,
-                               '  ',
-                                 new SourceNode(1, 0, 'a.js', 'someCall', 'originalCall'),
-                                 new SourceNode(1, 8, 'a.js', '()'),
-                                 ';' + nl,
-                               '  ', new SourceNode(2, 0, 'b.js', ['if (foo) bar()']), ';' + nl,
-                               '}());']);
-    var result = node.toStringWithSourceMap({
-      file: 'foo.js'
-    });
-
-    assert.equal(result.code, [
-      '(function () {',
-      '  someCall();',
-      '  if (foo) bar();',
-      '}());'
-    ].join(nl));
-
-    var map = result.map;
-    var mapWithoutOptions = node.toStringWithSourceMap().map;
-
-    assert.ok(map instanceof SourceMapGenerator, 'map instanceof SourceMapGenerator');
-    assert.ok(mapWithoutOptions instanceof SourceMapGenerator, 'mapWithoutOptions instanceof SourceMapGenerator');
-    assert.ok(!('file' in mapWithoutOptions));
-    mapWithoutOptions._file = 'foo.js';
-    util.assertEqualMaps(assert, map.toJSON(), mapWithoutOptions.toJSON());
-
-    map = new SourceMapConsumer(map.toString());
-
-    var actual;
-
-    actual = map.originalPositionFor({
-      line: 1,
-      column: 4
-    });
-    assert.equal(actual.source, null);
-    assert.equal(actual.line, null);
-    assert.equal(actual.column, null);
-
-    actual = map.originalPositionFor({
-      line: 2,
-      column: 2
-    });
-    assert.equal(actual.source, 'a.js');
-    assert.equal(actual.line, 1);
-    assert.equal(actual.column, 0);
-    assert.equal(actual.name, 'originalCall');
-
-    actual = map.originalPositionFor({
-      line: 3,
-      column: 2
-    });
-    assert.equal(actual.source, 'b.js');
-    assert.equal(actual.line, 2);
-    assert.equal(actual.column, 0);
-
-    actual = map.originalPositionFor({
-      line: 3,
-      column: 16
-    });
-    assert.equal(actual.source, null);
-    assert.equal(actual.line, null);
-    assert.equal(actual.column, null);
-
-    actual = map.originalPositionFor({
-      line: 4,
-      column: 2
-    });
-    assert.equal(actual.source, null);
-    assert.equal(actual.line, null);
-    assert.equal(actual.column, null);
-  });
-
-  exports['test .fromStringWithSourceMap()'] = forEachNewline(function (assert, util, nl) {
-    var testCode = util.testGeneratedCode.replace(/\n/g, nl);
-    var node = SourceNode.fromStringWithSourceMap(
-                              testCode,
-                              new SourceMapConsumer(util.testMap));
-
-    var result = node.toStringWithSourceMap({
-      file: 'min.js'
-    });
-    var map = result.map;
-    var code = result.code;
-
-    assert.equal(code, testCode);
-    assert.ok(map instanceof SourceMapGenerator, 'map instanceof SourceMapGenerator');
-    map = map.toJSON();
-    assert.equal(map.version, util.testMap.version);
-    assert.equal(map.file, util.testMap.file);
-    assert.equal(map.mappings, util.testMap.mappings);
-  });
-
-  exports['test .fromStringWithSourceMap() empty map'] = forEachNewline(function (assert, util, nl) {
-    var node = SourceNode.fromStringWithSourceMap(
-                              util.testGeneratedCode.replace(/\n/g, nl),
-                              new SourceMapConsumer(util.emptyMap));
-    var result = node.toStringWithSourceMap({
-      file: 'min.js'
-    });
-    var map = result.map;
-    var code = result.code;
-
-    assert.equal(code, util.testGeneratedCode.replace(/\n/g, nl));
-    assert.ok(map instanceof SourceMapGenerator, 'map instanceof SourceMapGenerator');
-    map = map.toJSON();
-    assert.equal(map.version, util.emptyMap.version);
-    assert.equal(map.file, util.emptyMap.file);
-    assert.equal(map.mappings.length, util.emptyMap.mappings.length);
-    assert.equal(map.mappings, util.emptyMap.mappings);
-  });
-
-  exports['test .fromStringWithSourceMap() complex version'] = forEachNewline(function (assert, util, nl) {
-    var input = new SourceNode(null, null, null, [
-      "(function() {" + nl,
-        "  var Test = {};" + nl,
-        "  ", new SourceNode(1, 0, "a.js", "Test.A = { value: 1234 };" + nl),
-        "  ", new SourceNode(2, 0, "a.js", "Test.A.x = 'xyz';"), nl,
-        "}());" + nl,
-        "/* Generated Source */"]);
-    input = input.toStringWithSourceMap({
-      file: 'foo.js'
-    });
-
-    var node = SourceNode.fromStringWithSourceMap(
-                              input.code,
-                              new SourceMapConsumer(input.map.toString()));
-
-    var result = node.toStringWithSourceMap({
-      file: 'foo.js'
-    });
-    var map = result.map;
-    var code = result.code;
-
-    assert.equal(code, input.code);
-    assert.ok(map instanceof SourceMapGenerator, 'map instanceof SourceMapGenerator');
-    map = map.toJSON();
-    var inputMap = input.map.toJSON();
-    util.assertEqualMaps(assert, map, inputMap);
-  });
-
-  exports['test .fromStringWithSourceMap() third argument'] = function (assert, util) {
-    // Assume the following directory structure:
-    //
-    // http://foo.org/
-    //   bar.coffee
-    //   app/
-    //     coffee/
-    //       foo.coffee
-    //       coffeeBundle.js # Made from {foo,bar,baz}.coffee
-    //       maps/
-    //         coffeeBundle.js.map
-    //     js/
-    //       foo.js
-    //     public/
-    //       app.js # Made from {foo,coffeeBundle}.js
-    //       app.js.map
-    //
-    // http://www.example.com/
-    //   baz.coffee
-
-    var coffeeBundle = new SourceNode(1, 0, 'foo.coffee', 'foo(coffee);\n');
-    coffeeBundle.setSourceContent('foo.coffee', 'foo coffee');
-    coffeeBundle.add(new SourceNode(2, 0, '/bar.coffee', 'bar(coffee);\n'));
-    coffeeBundle.add(new SourceNode(3, 0, 'http://www.example.com/baz.coffee', 'baz(coffee);'));
-    coffeeBundle = coffeeBundle.toStringWithSourceMap({
-      file: 'foo.js',
-      sourceRoot: '..'
-    });
-
-    var foo = new SourceNode(1, 0, 'foo.js', 'foo(js);');
-
-    var test = function(relativePath, expectedSources) {
-      var app = new SourceNode();
-      app.add(SourceNode.fromStringWithSourceMap(
-                                coffeeBundle.code,
-                                new SourceMapConsumer(coffeeBundle.map.toString()),
-                                relativePath));
-      app.add(foo);
-      var i = 0;
-      app.walk(function (chunk, loc) {
-        assert.equal(loc.source, expectedSources[i]);
-        i++;
-      });
-      app.walkSourceContents(function (sourceFile, sourceContent) {
-        assert.equal(sourceFile, expectedSources[0]);
-        assert.equal(sourceContent, 'foo coffee');
-      })
-    };
-
-    test('../coffee/maps', [
-      '../coffee/foo.coffee',
-      '/bar.coffee',
-      'http://www.example.com/baz.coffee',
-      'foo.js'
-    ]);
-
-    // If the third parameter is omitted or set to the current working
-    // directory we get incorrect source paths:
-
-    test(undefined, [
-      '../foo.coffee',
-      '/bar.coffee',
-      'http://www.example.com/baz.coffee',
-      'foo.js'
-    ]);
-
-    test('', [
-      '../foo.coffee',
-      '/bar.coffee',
-      'http://www.example.com/baz.coffee',
-      'foo.js'
-    ]);
-
-    test('.', [
-      '../foo.coffee',
-      '/bar.coffee',
-      'http://www.example.com/baz.coffee',
-      'foo.js'
-    ]);
-
-    test('./', [
-      '../foo.coffee',
-      '/bar.coffee',
-      'http://www.example.com/baz.coffee',
-      'foo.js'
-    ]);
-  };
-
-  exports['test .toStringWithSourceMap() merging duplicate mappings'] = forEachNewline(function (assert, util, nl) {
-    var input = new SourceNode(null, null, null, [
-      new SourceNode(1, 0, "a.js", "(function"),
-      new SourceNode(1, 0, "a.js", "() {" + nl),
-      "  ",
-      new SourceNode(1, 0, "a.js", "var Test = "),
-      new SourceNode(1, 0, "b.js", "{};" + nl),
-      new SourceNode(2, 0, "b.js", "Test"),
-      new SourceNode(2, 0, "b.js", ".A", "A"),
-      new SourceNode(2, 20, "b.js", " = { value: ", "A"),
-      "1234",
-      new SourceNode(2, 40, "b.js", " };" + nl, "A"),
-      "}());" + nl,
-      "/* Generated Source */"
-    ]);
-    input = input.toStringWithSourceMap({
-      file: 'foo.js'
-    });
-
-    assert.equal(input.code, [
-      "(function() {",
-      "  var Test = {};",
-      "Test.A = { value: 1234 };",
-      "}());",
-      "/* Generated Source */"
-    ].join(nl))
-
-    var correctMap = new SourceMapGenerator({
-      file: 'foo.js'
-    });
-    correctMap.addMapping({
-      generated: { line: 1, column: 0 },
-      source: 'a.js',
-      original: { line: 1, column: 0 }
-    });
-    // Here is no need for a empty mapping,
-    // because mappings ends at eol
-    correctMap.addMapping({
-      generated: { line: 2, column: 2 },
-      source: 'a.js',
-      original: { line: 1, column: 0 }
-    });
-    correctMap.addMapping({
-      generated: { line: 2, column: 13 },
-      source: 'b.js',
-      original: { line: 1, column: 0 }
-    });
-    correctMap.addMapping({
-      generated: { line: 3, column: 0 },
-      source: 'b.js',
-      original: { line: 2, column: 0 }
-    });
-    correctMap.addMapping({
-      generated: { line: 3, column: 4 },
-      source: 'b.js',
-      name: 'A',
-      original: { line: 2, column: 0 }
-    });
-    correctMap.addMapping({
-      generated: { line: 3, column: 6 },
-      source: 'b.js',
-      name: 'A',
-      original: { line: 2, column: 20 }
-    });
-    // This empty mapping is required,
-    // because there is a hole in the middle of the line
-    correctMap.addMapping({
-      generated: { line: 3, column: 18 }
-    });
-    correctMap.addMapping({
-      generated: { line: 3, column: 22 },
-      source: 'b.js',
-      name: 'A',
-      original: { line: 2, column: 40 }
-    });
-    // Here is no need for a empty mapping,
-    // because mappings ends at eol
-
-    var inputMap = input.map.toJSON();
-    correctMap = correctMap.toJSON();
-    util.assertEqualMaps(assert, inputMap, correctMap);
-  });
-
-  exports['test .toStringWithSourceMap() multi-line SourceNodes'] = forEachNewline(function (assert, util, nl) {
-    var input = new SourceNode(null, null, null, [
-      new SourceNode(1, 0, "a.js", "(function() {" + nl + "var nextLine = 1;" + nl + "anotherLine();" + nl),
-      new SourceNode(2, 2, "b.js", "Test.call(this, 123);" + nl),
-      new SourceNode(2, 2, "b.js", "this['stuff'] = 'v';" + nl),
-      new SourceNode(2, 2, "b.js", "anotherLine();" + nl),
-      "/*" + nl + "Generated" + nl + "Source" + nl + "*/" + nl,
-      new SourceNode(3, 4, "c.js", "anotherLine();" + nl),
-      "/*" + nl + "Generated" + nl + "Source" + nl + "*/"
-    ]);
-    input = input.toStringWithSourceMap({
-      file: 'foo.js'
-    });
-
-    assert.equal(input.code, [
-      "(function() {",
-      "var nextLine = 1;",
-      "anotherLine();",
-      "Test.call(this, 123);",
-      "this['stuff'] = 'v';",
-      "anotherLine();",
-      "/*",
-      "Generated",
-      "Source",
-      "*/",
-      "anotherLine();",
-      "/*",
-      "Generated",
-      "Source",
-      "*/"
-    ].join(nl));
-
-    var correctMap = new SourceMapGenerator({
-      file: 'foo.js'
-    });
-    correctMap.addMapping({
-      generated: { line: 1, column: 0 },
-      source: 'a.js',
-      original: { line: 1, column: 0 }
-    });
-    correctMap.addMapping({
-      generated: { line: 2, column: 0 },
-      source: 'a.js',
-      original: { line: 1, column: 0 }
-    });
-    correctMap.addMapping({
-      generated: { line: 3, column: 0 },
-      source: 'a.js',
-      original: { line: 1, column: 0 }
-    });
-    correctMap.addMapping({
-      generated: { line: 4, column: 0 },
-      source: 'b.js',
-      original: { line: 2, column: 2 }
-    });
-    correctMap.addMapping({
-      generated: { line: 5, column: 0 },
-      source: 'b.js',
-      original: { line: 2, column: 2 }
-    });
-    correctMap.addMapping({
-      generated: { line: 6, column: 0 },
-      source: 'b.js',
-      original: { line: 2, column: 2 }
-    });
-    correctMap.addMapping({
-      generated: { line: 11, column: 0 },
-      source: 'c.js',
-      original: { line: 3, column: 4 }
-    });
-
-    var inputMap = input.map.toJSON();
-    correctMap = correctMap.toJSON();
-    util.assertEqualMaps(assert, inputMap, correctMap);
-  });
-
-  exports['test .toStringWithSourceMap() with empty string'] = function (assert, util) {
-    var node = new SourceNode(1, 0, 'empty.js', '');
-    var result = node.toStringWithSourceMap();
-    assert.equal(result.code, '');
-  };
-
-  exports['test .toStringWithSourceMap() with consecutive newlines'] = forEachNewline(function (assert, util, nl) {
-    var input = new SourceNode(null, null, null, [
-      "/***/" + nl + nl,
-      new SourceNode(1, 0, "a.js", "'use strict';" + nl),
-      new SourceNode(2, 0, "a.js", "a();"),
-    ]);
-    input = input.toStringWithSourceMap({
-      file: 'foo.js'
-    });
-
-    assert.equal(input.code, [
-      "/***/",
-      "",
-      "'use strict';",
-      "a();",
-    ].join(nl));
-
-    var correctMap = new SourceMapGenerator({
-      file: 'foo.js'
-    });
-    correctMap.addMapping({
-      generated: { line: 3, column: 0 },
-      source: 'a.js',
-      original: { line: 1, column: 0 }
-    });
-    correctMap.addMapping({
-      generated: { line: 4, column: 0 },
-      source: 'a.js',
-      original: { line: 2, column: 0 }
-    });
-
-    var inputMap = input.map.toJSON();
-    correctMap = correctMap.toJSON();
-    util.assertEqualMaps(assert, inputMap, correctMap);
-  });
-
-  exports['test setSourceContent with toStringWithSourceMap'] = function (assert, util) {
-    var aNode = new SourceNode(1, 1, 'a.js', 'a');
-    aNode.setSourceContent('a.js', 'someContent');
-    var node = new SourceNode(null, null, null,
-                              ['(function () {\n',
-                               '  ', aNode,
-                               '  ', new SourceNode(1, 1, 'b.js', 'b'),
-                               '}());']);
-    node.setSourceContent('b.js', 'otherContent');
-    var map = node.toStringWithSourceMap({
-      file: 'foo.js'
-    }).map;
-
-    assert.ok(map instanceof SourceMapGenerator, 'map instanceof SourceMapGenerator');
-    map = new SourceMapConsumer(map.toString());
-
-    assert.equal(map.sources.length, 2);
-    assert.equal(map.sources[0], 'a.js');
-    assert.equal(map.sources[1], 'b.js');
-    assert.equal(map.sourcesContent.length, 2);
-    assert.equal(map.sourcesContent[0], 'someContent');
-    assert.equal(map.sourcesContent[1], 'otherContent');
-  };
-
-  exports['test walkSourceContents'] = function (assert, util) {
-    var aNode = new SourceNode(1, 1, 'a.js', 'a');
-    aNode.setSourceContent('a.js', 'someContent');
-    var node = new SourceNode(null, null, null,
-                              ['(function () {\n',
-                               '  ', aNode,
-                               '  ', new SourceNode(1, 1, 'b.js', 'b'),
-                               '}());']);
-    node.setSourceContent('b.js', 'otherContent');
-    var results = [];
-    node.walkSourceContents(function (sourceFile, sourceContent) {
-      results.push([sourceFile, sourceContent]);
-    });
-    assert.equal(results.length, 2);
-    assert.equal(results[0][0], 'a.js');
-    assert.equal(results[0][1], 'someContent');
-    assert.equal(results[1][0], 'b.js');
-    assert.equal(results[1][1], 'otherContent');
-  };
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-util.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/test-util.js
deleted file mode 100644 (file)
index 997d1a2..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2014 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var libUtil = require('../../lib/source-map/util');
-
-  exports['test urls'] = function (assert, util) {
-    var assertUrl = function (url) {
-      assert.equal(url, libUtil.urlGenerate(libUtil.urlParse(url)));
-    };
-    assertUrl('http://');
-    assertUrl('http://www.example.com');
-    assertUrl('http://user:pass@www.example.com');
-    assertUrl('http://www.example.com:80');
-    assertUrl('http://www.example.com/');
-    assertUrl('http://www.example.com/foo/bar');
-    assertUrl('http://www.example.com/foo/bar/');
-    assertUrl('http://user:pass@www.example.com:80/foo/bar/');
-
-    assertUrl('//');
-    assertUrl('//www.example.com');
-    assertUrl('file:///www.example.com');
-
-    assert.equal(libUtil.urlParse(''), null);
-    assert.equal(libUtil.urlParse('.'), null);
-    assert.equal(libUtil.urlParse('..'), null);
-    assert.equal(libUtil.urlParse('a'), null);
-    assert.equal(libUtil.urlParse('a/b'), null);
-    assert.equal(libUtil.urlParse('a//b'), null);
-    assert.equal(libUtil.urlParse('/a'), null);
-    assert.equal(libUtil.urlParse('data:foo,bar'), null);
-  };
-
-  exports['test normalize()'] = function (assert, util) {
-    assert.equal(libUtil.normalize('/..'), '/');
-    assert.equal(libUtil.normalize('/../'), '/');
-    assert.equal(libUtil.normalize('/../../../..'), '/');
-    assert.equal(libUtil.normalize('/../../../../a/b/c'), '/a/b/c');
-    assert.equal(libUtil.normalize('/a/b/c/../../../d/../../e'), '/e');
-
-    assert.equal(libUtil.normalize('..'), '..');
-    assert.equal(libUtil.normalize('../'), '../');
-    assert.equal(libUtil.normalize('../../a/'), '../../a/');
-    assert.equal(libUtil.normalize('a/..'), '.');
-    assert.equal(libUtil.normalize('a/../../..'), '../..');
-
-    assert.equal(libUtil.normalize('/.'), '/');
-    assert.equal(libUtil.normalize('/./'), '/');
-    assert.equal(libUtil.normalize('/./././.'), '/');
-    assert.equal(libUtil.normalize('/././././a/b/c'), '/a/b/c');
-    assert.equal(libUtil.normalize('/a/b/c/./././d/././e'), '/a/b/c/d/e');
-
-    assert.equal(libUtil.normalize(''), '.');
-    assert.equal(libUtil.normalize('.'), '.');
-    assert.equal(libUtil.normalize('./'), '.');
-    assert.equal(libUtil.normalize('././a'), 'a');
-    assert.equal(libUtil.normalize('a/./'), 'a/');
-    assert.equal(libUtil.normalize('a/././.'), 'a');
-
-    assert.equal(libUtil.normalize('/a/b//c////d/////'), '/a/b/c/d/');
-    assert.equal(libUtil.normalize('///a/b//c////d/////'), '///a/b/c/d/');
-    assert.equal(libUtil.normalize('a/b//c////d'), 'a/b/c/d');
-
-    assert.equal(libUtil.normalize('.///.././../a/b//./..'), '../../a')
-
-    assert.equal(libUtil.normalize('http://www.example.com'), 'http://www.example.com');
-    assert.equal(libUtil.normalize('http://www.example.com/'), 'http://www.example.com/');
-    assert.equal(libUtil.normalize('http://www.example.com/./..//a/b/c/.././d//'), 'http://www.example.com/a/b/d/');
-  };
-
-  exports['test join()'] = function (assert, util) {
-    assert.equal(libUtil.join('a', 'b'), 'a/b');
-    assert.equal(libUtil.join('a/', 'b'), 'a/b');
-    assert.equal(libUtil.join('a//', 'b'), 'a/b');
-    assert.equal(libUtil.join('a', 'b/'), 'a/b/');
-    assert.equal(libUtil.join('a', 'b//'), 'a/b/');
-    assert.equal(libUtil.join('a/', '/b'), '/b');
-    assert.equal(libUtil.join('a//', '//b'), '//b');
-
-    assert.equal(libUtil.join('a', '..'), '.');
-    assert.equal(libUtil.join('a', '../b'), 'b');
-    assert.equal(libUtil.join('a/b', '../c'), 'a/c');
-
-    assert.equal(libUtil.join('a', '.'), 'a');
-    assert.equal(libUtil.join('a', './b'), 'a/b');
-    assert.equal(libUtil.join('a/b', './c'), 'a/b/c');
-
-    assert.equal(libUtil.join('a', 'http://www.example.com'), 'http://www.example.com');
-    assert.equal(libUtil.join('a', 'data:foo,bar'), 'data:foo,bar');
-
-
-    assert.equal(libUtil.join('', 'b'), 'b');
-    assert.equal(libUtil.join('.', 'b'), 'b');
-    assert.equal(libUtil.join('', 'b/'), 'b/');
-    assert.equal(libUtil.join('.', 'b/'), 'b/');
-    assert.equal(libUtil.join('', 'b//'), 'b/');
-    assert.equal(libUtil.join('.', 'b//'), 'b/');
-
-    assert.equal(libUtil.join('', '..'), '..');
-    assert.equal(libUtil.join('.', '..'), '..');
-    assert.equal(libUtil.join('', '../b'), '../b');
-    assert.equal(libUtil.join('.', '../b'), '../b');
-
-    assert.equal(libUtil.join('', '.'), '.');
-    assert.equal(libUtil.join('.', '.'), '.');
-    assert.equal(libUtil.join('', './b'), 'b');
-    assert.equal(libUtil.join('.', './b'), 'b');
-
-    assert.equal(libUtil.join('', 'http://www.example.com'), 'http://www.example.com');
-    assert.equal(libUtil.join('.', 'http://www.example.com'), 'http://www.example.com');
-    assert.equal(libUtil.join('', 'data:foo,bar'), 'data:foo,bar');
-    assert.equal(libUtil.join('.', 'data:foo,bar'), 'data:foo,bar');
-
-
-    assert.equal(libUtil.join('..', 'b'), '../b');
-    assert.equal(libUtil.join('..', 'b/'), '../b/');
-    assert.equal(libUtil.join('..', 'b//'), '../b/');
-
-    assert.equal(libUtil.join('..', '..'), '../..');
-    assert.equal(libUtil.join('..', '../b'), '../../b');
-
-    assert.equal(libUtil.join('..', '.'), '..');
-    assert.equal(libUtil.join('..', './b'), '../b');
-
-    assert.equal(libUtil.join('..', 'http://www.example.com'), 'http://www.example.com');
-    assert.equal(libUtil.join('..', 'data:foo,bar'), 'data:foo,bar');
-
-
-    assert.equal(libUtil.join('a', ''), 'a');
-    assert.equal(libUtil.join('a', '.'), 'a');
-    assert.equal(libUtil.join('a/', ''), 'a');
-    assert.equal(libUtil.join('a/', '.'), 'a');
-    assert.equal(libUtil.join('a//', ''), 'a');
-    assert.equal(libUtil.join('a//', '.'), 'a');
-    assert.equal(libUtil.join('/a', ''), '/a');
-    assert.equal(libUtil.join('/a', '.'), '/a');
-    assert.equal(libUtil.join('', ''), '.');
-    assert.equal(libUtil.join('.', ''), '.');
-    assert.equal(libUtil.join('.', ''), '.');
-    assert.equal(libUtil.join('.', '.'), '.');
-    assert.equal(libUtil.join('..', ''), '..');
-    assert.equal(libUtil.join('..', '.'), '..');
-    assert.equal(libUtil.join('http://foo.org/a', ''), 'http://foo.org/a');
-    assert.equal(libUtil.join('http://foo.org/a', '.'), 'http://foo.org/a');
-    assert.equal(libUtil.join('http://foo.org/a/', ''), 'http://foo.org/a');
-    assert.equal(libUtil.join('http://foo.org/a/', '.'), 'http://foo.org/a');
-    assert.equal(libUtil.join('http://foo.org/a//', ''), 'http://foo.org/a');
-    assert.equal(libUtil.join('http://foo.org/a//', '.'), 'http://foo.org/a');
-    assert.equal(libUtil.join('http://foo.org', ''), 'http://foo.org/');
-    assert.equal(libUtil.join('http://foo.org', '.'), 'http://foo.org/');
-    assert.equal(libUtil.join('http://foo.org/', ''), 'http://foo.org/');
-    assert.equal(libUtil.join('http://foo.org/', '.'), 'http://foo.org/');
-    assert.equal(libUtil.join('http://foo.org//', ''), 'http://foo.org/');
-    assert.equal(libUtil.join('http://foo.org//', '.'), 'http://foo.org/');
-    assert.equal(libUtil.join('//www.example.com', ''), '//www.example.com/');
-    assert.equal(libUtil.join('//www.example.com', '.'), '//www.example.com/');
-
-
-    assert.equal(libUtil.join('http://foo.org/a', 'b'), 'http://foo.org/a/b');
-    assert.equal(libUtil.join('http://foo.org/a/', 'b'), 'http://foo.org/a/b');
-    assert.equal(libUtil.join('http://foo.org/a//', 'b'), 'http://foo.org/a/b');
-    assert.equal(libUtil.join('http://foo.org/a', 'b/'), 'http://foo.org/a/b/');
-    assert.equal(libUtil.join('http://foo.org/a', 'b//'), 'http://foo.org/a/b/');
-    assert.equal(libUtil.join('http://foo.org/a/', '/b'), 'http://foo.org/b');
-    assert.equal(libUtil.join('http://foo.org/a//', '//b'), 'http://b');
-
-    assert.equal(libUtil.join('http://foo.org/a', '..'), 'http://foo.org/');
-    assert.equal(libUtil.join('http://foo.org/a', '../b'), 'http://foo.org/b');
-    assert.equal(libUtil.join('http://foo.org/a/b', '../c'), 'http://foo.org/a/c');
-
-    assert.equal(libUtil.join('http://foo.org/a', '.'), 'http://foo.org/a');
-    assert.equal(libUtil.join('http://foo.org/a', './b'), 'http://foo.org/a/b');
-    assert.equal(libUtil.join('http://foo.org/a/b', './c'), 'http://foo.org/a/b/c');
-
-    assert.equal(libUtil.join('http://foo.org/a', 'http://www.example.com'), 'http://www.example.com');
-    assert.equal(libUtil.join('http://foo.org/a', 'data:foo,bar'), 'data:foo,bar');
-
-
-    assert.equal(libUtil.join('http://foo.org', 'a'), 'http://foo.org/a');
-    assert.equal(libUtil.join('http://foo.org/', 'a'), 'http://foo.org/a');
-    assert.equal(libUtil.join('http://foo.org//', 'a'), 'http://foo.org/a');
-    assert.equal(libUtil.join('http://foo.org', '/a'), 'http://foo.org/a');
-    assert.equal(libUtil.join('http://foo.org/', '/a'), 'http://foo.org/a');
-    assert.equal(libUtil.join('http://foo.org//', '/a'), 'http://foo.org/a');
-
-
-    assert.equal(libUtil.join('http://', 'www.example.com'), 'http://www.example.com');
-    assert.equal(libUtil.join('file:///', 'www.example.com'), 'file:///www.example.com');
-    assert.equal(libUtil.join('http://', 'ftp://example.com'), 'ftp://example.com');
-
-    assert.equal(libUtil.join('http://www.example.com', '//foo.org/bar'), 'http://foo.org/bar');
-    assert.equal(libUtil.join('//www.example.com', '//foo.org/bar'), '//foo.org/bar');
-  };
-
-  // TODO Issue #128: Define and test this function properly.
-  exports['test relative()'] = function (assert, util) {
-    assert.equal(libUtil.relative('/the/root', '/the/root/one.js'), 'one.js');
-    assert.equal(libUtil.relative('/the/root', '/the/rootone.js'), '/the/rootone.js');
-
-    assert.equal(libUtil.relative('', '/the/root/one.js'), '/the/root/one.js');
-    assert.equal(libUtil.relative('.', '/the/root/one.js'), '/the/root/one.js');
-    assert.equal(libUtil.relative('', 'the/root/one.js'), 'the/root/one.js');
-    assert.equal(libUtil.relative('.', 'the/root/one.js'), 'the/root/one.js');
-
-    assert.equal(libUtil.relative('/', '/the/root/one.js'), 'the/root/one.js');
-    assert.equal(libUtil.relative('/', 'the/root/one.js'), 'the/root/one.js');
-  };
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/util.js b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map/util.js
deleted file mode 100644 (file)
index 56bbe2c..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
-
-  var util = require('../../lib/source-map/util');
-
-  // This is a test mapping which maps functions from two different files
-  // (one.js and two.js) to a minified generated source.
-  //
-  // Here is one.js:
-  //
-  //   ONE.foo = function (bar) {
-  //     return baz(bar);
-  //   };
-  //
-  // Here is two.js:
-  //
-  //   TWO.inc = function (n) {
-  //     return n + 1;
-  //   };
-  //
-  // And here is the generated code (min.js):
-  //
-  //   ONE.foo=function(a){return baz(a);};
-  //   TWO.inc=function(a){return a+1;};
-  exports.testGeneratedCode = " ONE.foo=function(a){return baz(a);};\n"+
-                              " TWO.inc=function(a){return a+1;};";
-  exports.testMap = {
-    version: 3,
-    file: 'min.js',
-    names: ['bar', 'baz', 'n'],
-    sources: ['one.js', 'two.js'],
-    sourceRoot: '/the/root',
-    mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
-  };
-  exports.testMapNoSourceRoot = {
-    version: 3,
-    file: 'min.js',
-    names: ['bar', 'baz', 'n'],
-    sources: ['one.js', 'two.js'],
-    mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
-  };
-  exports.testMapEmptySourceRoot = {
-    version: 3,
-    file: 'min.js',
-    names: ['bar', 'baz', 'n'],
-    sources: ['one.js', 'two.js'],
-    sourceRoot: '',
-    mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
-  };
-  exports.testMapWithSourcesContent = {
-    version: 3,
-    file: 'min.js',
-    names: ['bar', 'baz', 'n'],
-    sources: ['one.js', 'two.js'],
-    sourcesContent: [
-      ' ONE.foo = function (bar) {\n' +
-      '   return baz(bar);\n' +
-      ' };',
-      ' TWO.inc = function (n) {\n' +
-      '   return n + 1;\n' +
-      ' };'
-    ],
-    sourceRoot: '/the/root',
-    mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
-  };
-  exports.testMapRelativeSources = {
-    version: 3,
-    file: 'min.js',
-    names: ['bar', 'baz', 'n'],
-    sources: ['./one.js', './two.js'],
-    sourcesContent: [
-      ' ONE.foo = function (bar) {\n' +
-      '   return baz(bar);\n' +
-      ' };',
-      ' TWO.inc = function (n) {\n' +
-      '   return n + 1;\n' +
-      ' };'
-    ],
-    sourceRoot: '/the/root',
-    mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
-  };
-  exports.emptyMap = {
-    version: 3,
-    file: 'min.js',
-    names: [],
-    sources: [],
-    mappings: ''
-  };
-
-
-  function assertMapping(generatedLine, generatedColumn, originalSource,
-                         originalLine, originalColumn, name, map, assert,
-                         dontTestGenerated, dontTestOriginal) {
-    if (!dontTestOriginal) {
-      var origMapping = map.originalPositionFor({
-        line: generatedLine,
-        column: generatedColumn
-      });
-      assert.equal(origMapping.name, name,
-                   'Incorrect name, expected ' + JSON.stringify(name)
-                   + ', got ' + JSON.stringify(origMapping.name));
-      assert.equal(origMapping.line, originalLine,
-                   'Incorrect line, expected ' + JSON.stringify(originalLine)
-                   + ', got ' + JSON.stringify(origMapping.line));
-      assert.equal(origMapping.column, originalColumn,
-                   'Incorrect column, expected ' + JSON.stringify(originalColumn)
-                   + ', got ' + JSON.stringify(origMapping.column));
-
-      var expectedSource;
-
-      if (originalSource && map.sourceRoot && originalSource.indexOf(map.sourceRoot) === 0) {
-        expectedSource = originalSource;
-      } else if (originalSource) {
-        expectedSource = map.sourceRoot
-          ? util.join(map.sourceRoot, originalSource)
-          : originalSource;
-      } else {
-        expectedSource = null;
-      }
-
-      assert.equal(origMapping.source, expectedSource,
-                   'Incorrect source, expected ' + JSON.stringify(expectedSource)
-                   + ', got ' + JSON.stringify(origMapping.source));
-    }
-
-    if (!dontTestGenerated) {
-      var genMapping = map.generatedPositionFor({
-        source: originalSource,
-        line: originalLine,
-        column: originalColumn
-      });
-      assert.equal(genMapping.line, generatedLine,
-                   'Incorrect line, expected ' + JSON.stringify(generatedLine)
-                   + ', got ' + JSON.stringify(genMapping.line));
-      assert.equal(genMapping.column, generatedColumn,
-                   'Incorrect column, expected ' + JSON.stringify(generatedColumn)
-                   + ', got ' + JSON.stringify(genMapping.column));
-    }
-  }
-  exports.assertMapping = assertMapping;
-
-  function assertEqualMaps(assert, actualMap, expectedMap) {
-    assert.equal(actualMap.version, expectedMap.version, "version mismatch");
-    assert.equal(actualMap.file, expectedMap.file, "file mismatch");
-    assert.equal(actualMap.names.length,
-                 expectedMap.names.length,
-                 "names length mismatch: " +
-                   actualMap.names.join(", ") + " != " + expectedMap.names.join(", "));
-    for (var i = 0; i < actualMap.names.length; i++) {
-      assert.equal(actualMap.names[i],
-                   expectedMap.names[i],
-                   "names[" + i + "] mismatch: " +
-                     actualMap.names.join(", ") + " != " + expectedMap.names.join(", "));
-    }
-    assert.equal(actualMap.sources.length,
-                 expectedMap.sources.length,
-                 "sources length mismatch: " +
-                   actualMap.sources.join(", ") + " != " + expectedMap.sources.join(", "));
-    for (var i = 0; i < actualMap.sources.length; i++) {
-      assert.equal(actualMap.sources[i],
-                   expectedMap.sources[i],
-                   "sources[" + i + "] length mismatch: " +
-                   actualMap.sources.join(", ") + " != " + expectedMap.sources.join(", "));
-    }
-    assert.equal(actualMap.sourceRoot,
-                 expectedMap.sourceRoot,
-                 "sourceRoot mismatch: " +
-                   actualMap.sourceRoot + " != " + expectedMap.sourceRoot);
-    assert.equal(actualMap.mappings, expectedMap.mappings,
-                 "mappings mismatch:\nActual:   " + actualMap.mappings + "\nExpected: " + expectedMap.mappings);
-    if (actualMap.sourcesContent) {
-      assert.equal(actualMap.sourcesContent.length,
-                   expectedMap.sourcesContent.length,
-                   "sourcesContent length mismatch");
-      for (var i = 0; i < actualMap.sourcesContent.length; i++) {
-        assert.equal(actualMap.sourcesContent[i],
-                     expectedMap.sourcesContent[i],
-                     "sourcesContent[" + i + "] mismatch");
-      }
-    }
-  }
-  exports.assertEqualMaps = assertEqualMaps;
-
-});
diff --git a/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/package.json b/atom/packages/ex-mode/node_modules/space-pen/node_modules/grim/node_modules/coffeestack/package.json
deleted file mode 100644 (file)
index 82a9de4..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-{
-  "name": "coffeestack",
-  "version": "1.1.2",
-  "description": "CoffeeScript stack trace converter",
-  "main": "./index.js",
-  "scripts": {
-    "prepublish": "grunt clean lint coffee",
-    "test": "grunt test"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/kevinsawicki/coffeestack.git"
-  },
-  "keywords": [
-    "CoffeeScript",
-    "JavaScript",
-    "stack",
-    "stacktrace",
-    "trace",
-    "source maps"
-  ],
-  "author": {
-    "name": "Kevin Sawicki",
-    "email": "kevinsawicki@gmail.com"
-  },
-  "license": "BSD",
-  "bugs": {
-    "url": "https://github.com/kevinsawicki/coffeestack/issues"
-  },
-  "dependencies": {
-    "coffee-script": "~1.8.0",
-    "fs-plus": "^2.5.0",
-    "source-map": "~0.1.43"
-  },
-  "devDependencies": {
-    "grunt": "~0.4.1",
-    "grunt-cli": "~0.1.9",
-    "grunt-coffeelint": "0.0.7",
-    "grunt-contrib-coffee": "~0.7.0",
-    "grunt-shell": "~0.3.0",
-    "jasmine-focused": "1.x",
-    "rimraf": "~2.2.0",
-    "temp": "^0.8.1"
-  },
-  "gitHead": "8484218a00e59526d9f064b64441df788526fa04",
-  "homepage": "https://github.com/kevinsawicki/coffeestack",
-  "_id": "coffeestack@1.1.2",
-  "_shasum": "35278f3beb9ce6f5d0ada1fb6e087852b657ce98",
-  "_from": "coffeestack@>=1.0.0 <2.0.0",
-  "_npmVersion": "1.4.28",
-  "_npmUser": {
-    "name": "kevinsawicki",
-    "email": "kevinsawicki@gmail.com"
-  },
-  "maintainers": [
-    {
-      "name": "kevinsawicki",
-      "email": "kevinsawicki@gmail.com"
-    }
-  ],
-  "dist": {
-    "shasum": "35278f3beb9ce6f5d0ada1fb6e087852b657ce98",
-    "tarball": "http://registry.npmjs.org/coffeestack/-/coffeestack-1.1.2.tgz"
-  },
-  "directories": {},
-  "_resolved": "https://registry.npmjs.org/coffeestack/-/coffeestack-1.1.2.tgz"
-}
index 1eace4a5430afd197e13a096b3a2c477a467c795..be85e24136e69eb80c171b70ab7eac34fdab0339 100644 (file)
@@ -9,7 +9,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/mixto"
+    "url": "git+https://github.com/atom/mixto.git"
   },
   "keywords": [
     "mixin",
   },
   "keywords": [
     "mixin",
index 7c7f3657f99e097e987cd851d62f64e1040f857c..66179a48b2a978880050238ee9bb5939dbc4f3e0 100644 (file)
@@ -9,7 +9,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/property-accessors"
+    "url": "git+https://github.com/atom/property-accessors.git"
   },
   "keywords": [
     "property",
   },
   "keywords": [
     "property",
index ccd6522c2584c2e09a12a142b03f66250fd097bd..53b6b8a8f8482bbccdc78b4b2cb41c5817d1f9ed 100644 (file)
@@ -9,7 +9,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "http://github.com/atom/emissary.git"
+    "url": "git+ssh://git@github.com/atom/emissary.git"
   },
   "bugs": {
     "url": "https://github.com/atom/emissary/issues"
   },
   "bugs": {
     "url": "https://github.com/atom/emissary/issues"
index ffbe7dcbbbd0489831e4c8ae1b783c27da89cc65..6fcdc12beac74c6a6bf1e4bac46d697917434598 100644 (file)
@@ -1,6 +1,6 @@
 {
   "name": "grim",
 {
   "name": "grim",
-  "version": "1.4.1",
+  "version": "1.4.2",
   "description": "Log usage of deprecated methods",
   "main": "./lib/grim",
   "scripts": {
   "description": "Log usage of deprecated methods",
   "main": "./lib/grim",
   "scripts": {
@@ -9,7 +9,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/grim.git"
+    "url": "git+https://github.com/atom/grim.git"
   },
   "bugs": {
     "url": "https://github.com/atom/grim/issues"
   },
   "bugs": {
     "url": "https://github.com/atom/grim/issues"
@@ -21,7 +21,6 @@
     }
   ],
   "dependencies": {
     }
   ],
   "dependencies": {
-    "coffeestack": "^1",
     "emissary": "^1.2.0"
   },
   "devDependencies": {
     "emissary": "^1.2.0"
   },
   "devDependencies": {
     "coffee-cache": "^0.2.0",
     "temp": "^0.6.0"
   },
     "coffee-cache": "^0.2.0",
     "temp": "^0.6.0"
   },
-  "gitHead": "dbcb234a130aaef6af1458bfa686f65c5b97690a",
-  "homepage": "https://github.com/atom/grim",
-  "_id": "grim@1.4.1",
-  "_shasum": "bd47bf11823bbfb1fc731914fab51016bea9e677",
+  "gitHead": "82c45ef794ce93e4455c29365441c62bf94b90a8",
+  "homepage": "https://github.com/atom/grim#readme",
+  "_id": "grim@1.4.2",
+  "_shasum": "b33abee33ec351bab8695818d511a049ca62ef04",
   "_from": "grim@>=1.0.0 <2.0.0",
   "_from": "grim@>=1.0.0 <2.0.0",
-  "_npmVersion": "1.4.28",
+  "_npmVersion": "2.11.3",
+  "_nodeVersion": "0.12.7",
   "_npmUser": {
   "_npmUser": {
-    "name": "kevinsawicki",
-    "email": "kevinsawicki@gmail.com"
+    "name": "nathansobo",
+    "email": "nathan@github.com"
   },
   "maintainers": [
     {
   },
   "maintainers": [
     {
@@ -65,9 +65,9 @@
     }
   ],
   "dist": {
     }
   ],
   "dist": {
-    "shasum": "bd47bf11823bbfb1fc731914fab51016bea9e677",
-    "tarball": "http://registry.npmjs.org/grim/-/grim-1.4.1.tgz"
+    "shasum": "b33abee33ec351bab8695818d511a049ca62ef04",
+    "tarball": "http://registry.npmjs.org/grim/-/grim-1.4.2.tgz"
   },
   "directories": {},
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/grim/-/grim-1.4.1.tgz"
+  "_resolved": "https://registry.npmjs.org/grim/-/grim-1.4.2.tgz"
 }
 }
index 63038546b04bc82cf20311a5e587d554a545781d..ff2ec471257593ecccfff658eeed44cb8b208166 100644 (file)
@@ -11,7 +11,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/jquery/jquery.git"
+    "url": "git+https://github.com/jquery/jquery.git"
   },
   "keywords": [
     "jquery",
   },
   "keywords": [
     "jquery",
@@ -85,5 +85,6 @@
     "tarball": "http://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz"
   },
   "directories": {},
     "tarball": "http://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz"
+  "_resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
index e2c70fbe991f9a479363ff327291d22ab856f8b0..4d89c1017476323cb32c853a891f94564a8a9a59 100644 (file)
@@ -16,7 +16,7 @@
   ],
   "repository": {
     "type": "git",
   ],
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/space-pen.git"
+    "url": "git+https://github.com/atom/space-pen.git"
   },
   "bugs": {
     "url": "https://github.com/atom/space-pen/issues"
   },
   "bugs": {
     "url": "https://github.com/atom/space-pen/issues"
@@ -69,5 +69,6 @@
     "tarball": "http://registry.npmjs.org/space-pen/-/space-pen-5.1.1.tgz"
   },
   "directories": {},
     "tarball": "http://registry.npmjs.org/space-pen/-/space-pen-5.1.1.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/space-pen/-/space-pen-5.1.1.tgz"
+  "_resolved": "https://registry.npmjs.org/space-pen/-/space-pen-5.1.1.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
index 8bdcd9d5ed391efbfe54d71cb25e83447939ff06..98add9f5351c00816ceaed53d299bf3abcf1372d 100644 (file)
@@ -15,7 +15,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/underscore-plus.git"
+    "url": "git+https://github.com/atom/underscore-plus.git"
   },
   "bugs": {
     "url": "https://github.com/atom/underscore-plus/issues"
   },
   "bugs": {
     "url": "https://github.com/atom/underscore-plus/issues"
index efd120705b7b4b8243ac853b50b97ee815269891..88a73aa738fd6b9c6bcecd9401107c23c29cc5f6 100644 (file)
@@ -1,14 +1,14 @@
 {
   "name": "ex-mode",
   "main": "./lib/ex-mode",
 {
   "name": "ex-mode",
   "main": "./lib/ex-mode",
-  "version": "0.5.1",
+  "version": "0.7.0",
   "description": "Ex for Atom's vim-mode",
   "activationCommands": {
     "atom-workspace": "ex-mode:open"
   },
   "repository": {
     "type": "git",
   "description": "Ex for Atom's vim-mode",
   "activationCommands": {
     "atom-workspace": "ex-mode:open"
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/lloeki/ex-mode"
+    "url": "git+https://github.com/lloeki/ex-mode.git"
   },
   "license": "MIT",
   "engines": {
   },
   "license": "MIT",
   "engines": {
@@ -18,7 +18,8 @@
     "underscore-plus": "1.x",
     "event-kit": "^0.7.2",
     "space-pen": "^5.1.1",
     "underscore-plus": "1.x",
     "event-kit": "^0.7.2",
     "space-pen": "^5.1.1",
-    "atom-space-pen-views": "^2.0.4"
+    "atom-space-pen-views": "^2.0.4",
+    "fs-plus": "^2.2.8"
   },
   "consumedServices": {
     "vim-mode": {
   },
   "consumedServices": {
     "vim-mode": {
       }
     }
   },
       }
     }
   },
+  "devDependencies": {
+    "node-uuid": "^1.4.2"
+  },
   "readme": "# ex-mode package\n\nex-mode for Atom's vim-mode\n\n## Use\n\nInstall both [vim-mode](https://github.com/atom/vim-mode) and ex-mode. Type `:` in command mode. Enter `w` or `write`.\n\n## Extend\n\nUse the service to register commands, from your own package, or straight from `init.coffee`:\n\n```coffee\n# in Atom's init.coffee\natom.packages.onDidActivatePackage (pack) ->\n  if pack.name == 'ex-mode'\n    Ex = pack.mainModule.provideEx()\n    Ex.registerCommand 'z', -> console.log(\"Zzzzzz...\")\n```\n\nSee `lib/ex.coffee` for some examples commands. Contributions are very welcome!\n\n## Status\n\nGroundwork is done. More ex commands are easy to add and will be coming as time permits and contributions come in.\n\n## License\n\nMIT\n",
   "readmeFilename": "README.md",
   "bugs": {
     "url": "https://github.com/lloeki/ex-mode/issues"
   },
   "readme": "# ex-mode package\n\nex-mode for Atom's vim-mode\n\n## Use\n\nInstall both [vim-mode](https://github.com/atom/vim-mode) and ex-mode. Type `:` in command mode. Enter `w` or `write`.\n\n## Extend\n\nUse the service to register commands, from your own package, or straight from `init.coffee`:\n\n```coffee\n# in Atom's init.coffee\natom.packages.onDidActivatePackage (pack) ->\n  if pack.name == 'ex-mode'\n    Ex = pack.mainModule.provideEx()\n    Ex.registerCommand 'z', -> console.log(\"Zzzzzz...\")\n```\n\nSee `lib/ex.coffee` for some examples commands. Contributions are very welcome!\n\n## Status\n\nGroundwork is done. More ex commands are easy to add and will be coming as time permits and contributions come in.\n\n## License\n\nMIT\n",
   "readmeFilename": "README.md",
   "bugs": {
     "url": "https://github.com/lloeki/ex-mode/issues"
   },
-  "homepage": "https://github.com/lloeki/ex-mode",
-  "_id": "ex-mode@0.5.1",
-  "_shasum": "8af9a669232d55ae62ee5b6d21750e864564a7fe",
-  "_resolved": "file:../d-11562-87793-1y2kizp/package.tgz",
-  "_from": "../d-11562-87793-1y2kizp/package.tgz",
+  "homepage": "https://github.com/lloeki/ex-mode#readme",
+  "_id": "ex-mode@0.7.0",
+  "_shasum": "afecba0f6a689e6d14f919493c5eb36450897552",
+  "_resolved": "file:../d-115828-94470-1t5wlla/package.tgz",
+  "_from": "../d-115828-94470-1t5wlla/package.tgz",
   "_atomModuleCache": {
     "version": 1,
     "dependencies": [
       {
         "name": "atom-space-pen-views",
   "_atomModuleCache": {
     "version": 1,
     "dependencies": [
       {
         "name": "atom-space-pen-views",
-        "version": "2.0.5",
+        "version": "2.1.0",
         "path": "node_modules/atom-space-pen-views/lib/main.js"
       },
       {
         "path": "node_modules/atom-space-pen-views/lib/main.js"
       },
       {
         "version": "1.1.3",
         "path": "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/property-accessors/lib/property-accessors.js"
       },
         "version": "1.1.3",
         "path": "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/property-accessors/lib/property-accessors.js"
       },
-      {
-        "name": "space-pen",
-        "version": "5.1.1",
-        "path": "node_modules/space-pen/lib/space-pen.js"
-      },
-      {
-        "name": "grim",
-        "version": "1.4.1",
-        "path": "node_modules/space-pen/node_modules/grim/lib/grim.js"
-      },
-      {
-        "name": "coffeestack",
-        "version": "1.1.2",
-        "path": "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/index.js"
-      },
-      {
-        "name": "coffee-script",
-        "version": "1.8.0",
-        "path": "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/coffee-script.js"
-      },
-      {
-        "name": "mkdirp",
-        "version": "0.3.5",
-        "path": "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/index.js"
-      },
       {
         "name": "fs-plus",
         "version": "2.8.1",
       {
         "name": "fs-plus",
         "version": "2.8.1",
-        "path": "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/lib/fs-plus.js"
+        "path": "node_modules/fs-plus/lib/fs-plus.js"
       },
       {
         "name": "async",
         "version": "0.2.10",
       },
       {
         "name": "async",
         "version": "0.2.10",
-        "path": "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/async/lib/async.js"
+        "path": "node_modules/fs-plus/node_modules/async/lib/async.js"
       },
       {
         "name": "mkdirp",
         "version": "0.3.5",
       },
       {
         "name": "mkdirp",
         "version": "0.3.5",
-        "path": "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/index.js"
+        "path": "node_modules/fs-plus/node_modules/mkdirp/index.js"
       },
       {
         "name": "rimraf",
         "version": "2.2.8",
       },
       {
         "name": "rimraf",
         "version": "2.2.8",
-        "path": "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/rimraf/rimraf.js"
+        "path": "node_modules/fs-plus/node_modules/rimraf/rimraf.js"
       },
       {
       },
       {
-        "name": "source-map",
-        "version": "0.1.43",
-        "path": "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map.js"
+        "name": "space-pen",
+        "version": "5.1.1",
+        "path": "node_modules/space-pen/lib/space-pen.js"
       },
       {
       },
       {
-        "name": "amdefine",
-        "version": "0.1.1",
-        "path": "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/amdefine.js"
+        "name": "grim",
+        "version": "1.4.2",
+        "path": "node_modules/space-pen/node_modules/grim/lib/grim.js"
       },
       {
         "name": "emissary",
       },
       {
         "name": "emissary",
       ".coffee": [
         "lib/command-error.coffee",
         "lib/command.coffee",
       ".coffee": [
         "lib/command-error.coffee",
         "lib/command.coffee",
-        "lib/ex-command-mode-input-element.coffee",
         "lib/ex-mode.coffee",
         "lib/ex-mode.coffee",
+        "lib/ex-normal-mode-input-element.coffee",
         "lib/ex-state.coffee",
         "lib/ex-view-model.coffee",
         "lib/ex.coffee",
         "lib/find.coffee",
         "lib/global-ex-state.coffee",
         "lib/ex-state.coffee",
         "lib/ex-view-model.coffee",
         "lib/ex.coffee",
         "lib/find.coffee",
         "lib/global-ex-state.coffee",
-        "lib/view-model.coffee"
+        "lib/view-model.coffee",
+        "lib/vim-option.coffee"
       ],
       ".js": [
         "node_modules/atom-space-pen-views/lib/main.js",
       ],
       ".js": [
         "node_modules/atom-space-pen-views/lib/main.js",
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/valid-weak-map.js",
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/mixto/lib/mixin.js",
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/property-accessors/lib/property-accessors.js",
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/valid-weak-map.js",
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/mixto/lib/mixin.js",
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/property-accessors/lib/property-accessors.js",
+        "node_modules/fs-plus/lib/fs-plus.js",
+        "node_modules/fs-plus/node_modules/async/lib/async.js",
+        "node_modules/fs-plus/node_modules/mkdirp/examples/pow.js",
+        "node_modules/fs-plus/node_modules/mkdirp/index.js",
+        "node_modules/fs-plus/node_modules/rimraf/bin.js",
+        "node_modules/fs-plus/node_modules/rimraf/rimraf.js",
         "node_modules/space-pen/lib/space-pen.js",
         "node_modules/space-pen/node_modules/grim/lib/deprecation.js",
         "node_modules/space-pen/node_modules/grim/lib/grim.js",
         "node_modules/space-pen/lib/space-pen.js",
         "node_modules/space-pen/node_modules/grim/lib/deprecation.js",
         "node_modules/space-pen/node_modules/grim/lib/grim.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/index.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/browser.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/cake.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/coffee-script.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/command.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/grammar.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/helpers.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/index.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/lexer.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/nodes.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/optparse.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/parser.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/register.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/repl.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/rewriter.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/scope.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script/sourcemap.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/examples/pow.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/index.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/register.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/repl.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/lib/fs-plus.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/async/lib/async.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/examples/pow.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/index.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/rimraf/bin.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/rimraf/rimraf.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/Makefile.dryice.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/assert-shim.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/mini-require.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/suffix-browser.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/test-prefix.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build/test-suffix.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/array-set.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/base64-vlq.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/base64.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/binary-search.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/mapping-list.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/source-map-consumer.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/source-map-generator.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/source-node.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map/util.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/amdefine.js",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/intercept.js",
         "node_modules/space-pen/node_modules/grim/node_modules/emissary/lib/behavior.js",
         "node_modules/space-pen/node_modules/grim/node_modules/emissary/lib/emissary.js",
         "node_modules/space-pen/node_modules/grim/node_modules/emissary/lib/emitter.js",
         "node_modules/space-pen/node_modules/grim/node_modules/emissary/lib/behavior.js",
         "node_modules/space-pen/node_modules/grim/node_modules/emissary/lib/emissary.js",
         "node_modules/space-pen/node_modules/grim/node_modules/emissary/lib/emitter.js",
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/package.json",
         "node_modules/event-kit/node_modules/grim/package.json",
         "node_modules/event-kit/package.json",
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/package.json",
         "node_modules/event-kit/node_modules/grim/package.json",
         "node_modules/event-kit/package.json",
+        "node_modules/fs-plus/node_modules/async/component.json",
+        "node_modules/fs-plus/node_modules/async/package.json",
+        "node_modules/fs-plus/node_modules/mkdirp/package.json",
+        "node_modules/fs-plus/node_modules/rimraf/package.json",
+        "node_modules/fs-plus/package.json",
         "node_modules/space-pen/api.json",
         "node_modules/space-pen/api.json",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/node_modules/mkdirp/package.json",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/package.json",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/async/component.json",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/async/package.json",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/mkdirp/package.json",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/node_modules/rimraf/package.json",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/package.json",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/node_modules/amdefine/package.json",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/package.json",
-        "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/package.json",
         "node_modules/space-pen/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/package.json",
         "node_modules/space-pen/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/package.json",
         "node_modules/space-pen/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/package.json",
         "node_modules/space-pen/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/package.json",
         "node_modules/space-pen/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/package.json",
         "node_modules/space-pen/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/package.json",
           "underscore-plus": "1.x",
           "event-kit": "^0.7.2",
           "space-pen": "^5.1.1",
           "underscore-plus": "1.x",
           "event-kit": "^0.7.2",
           "space-pen": "^5.1.1",
-          "atom-space-pen-views": "^2.0.4"
+          "atom-space-pen-views": "^2.0.4",
+          "fs-plus": "^2.2.8"
         }
       },
       {
         }
       },
       {
           "es6-weak-map": "^0.1.2"
         }
       },
           "es6-weak-map": "^0.1.2"
         }
       },
+      {
+        "paths": [
+          "node_modules/fs-plus/lib",
+          "node_modules/fs-plus"
+        ],
+        "dependencies": {
+          "underscore-plus": "1.x",
+          "mkdirp": "~0.3.5",
+          "rimraf": "~2.2.2",
+          "async": "~0.2.9"
+        }
+      },
       {
         "paths": [
           "node_modules/space-pen",
       {
         "paths": [
           "node_modules/space-pen",
           "node_modules/space-pen/node_modules/grim"
         ],
         "dependencies": {
           "node_modules/space-pen/node_modules/grim"
         ],
         "dependencies": {
-          "coffeestack": "^1",
           "emissary": "^1.2.0"
         }
       },
           "emissary": "^1.2.0"
         }
       },
-      {
-        "paths": [
-          "node_modules/space-pen/node_modules/grim/node_modules/coffeestack"
-        ],
-        "dependencies": {
-          "coffee-script": "~1.8.0",
-          "fs-plus": "^2.5.0",
-          "source-map": "~0.1.43"
-        }
-      },
-      {
-        "paths": [
-          "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script/lib/coffee-script",
-          "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/coffee-script"
-        ],
-        "dependencies": {
-          "mkdirp": "~0.3.5"
-        }
-      },
-      {
-        "paths": [
-          "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus/lib",
-          "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/fs-plus"
-        ],
-        "dependencies": {
-          "underscore-plus": "1.x",
-          "mkdirp": "~0.3.5",
-          "rimraf": "~2.2.2",
-          "async": "~0.2.9"
-        }
-      },
-      {
-        "paths": [
-          "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map",
-          "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/build",
-          "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib/source-map",
-          "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/lib",
-          "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test",
-          "node_modules/space-pen/node_modules/grim/node_modules/coffeestack/node_modules/source-map/test/source-map"
-        ],
-        "dependencies": {
-          "amdefine": ">=0.0.4"
-        }
-      },
       {
         "paths": [
           "node_modules/space-pen/node_modules/grim/node_modules/emissary/lib",
       {
         "paths": [
           "node_modules/space-pen/node_modules/grim/node_modules/emissary/lib",
diff --git a/atom/packages/ex-mode/spec/ex-commands-spec.coffee b/atom/packages/ex-mode/spec/ex-commands-spec.coffee
new file mode 100644 (file)
index 0000000..803aa57
--- /dev/null
@@ -0,0 +1,518 @@
+fs = require 'fs-plus'
+path = require 'path'
+os = require 'os'
+uuid = require 'node-uuid'
+helpers = require './spec-helper'
+
+Ex = require('../lib/ex').singleton()
+
+describe "the commands", ->
+  [editor, editorElement, vimState, exState, dir, dir2] = []
+  projectPath = (fileName) -> path.join(dir, fileName)
+  beforeEach ->
+    vimMode = atom.packages.loadPackage('vim-mode')
+    exMode = atom.packages.loadPackage('ex-mode')
+    exMode.activate()
+
+    waitsForPromise ->
+      vimMode.activate().then ->
+        helpers.activateExMode().then ->
+          dir = path.join(os.tmpdir(), "atom-ex-mode-spec-#{uuid.v4()}")
+          dir2 = path.join(os.tmpdir(), "atom-ex-mode-spec-#{uuid.v4()}")
+          fs.makeTreeSync(dir)
+          fs.makeTreeSync(dir2)
+          atom.project.setPaths([dir, dir2])
+
+          helpers.getEditorElement (element) ->
+            atom.commands.dispatch(element, 'ex-mode:open')
+            keydown('escape')
+            editorElement = element
+            editor = editorElement.getModel()
+            vimState = vimMode.mainModule.getEditorState(editor)
+            exState = exMode.mainModule.exStates.get(editor)
+            vimState.activateNormalMode()
+            vimState.resetNormalMode()
+            editor.setText("abc\ndef\nabc\ndef")
+
+  afterEach ->
+    fs.removeSync(dir)
+    fs.removeSync(dir2)
+
+  keydown = (key, options={}) ->
+    options.element ?= editorElement
+    helpers.keydown(key, options)
+
+  normalModeInputKeydown = (key, opts = {}) ->
+    editor.normalModeInputView.editorElement.getModel().setText(key)
+
+  submitNormalModeInputText = (text) ->
+    commandEditor = editor.normalModeInputView.editorElement
+    commandEditor.getModel().setText(text)
+    atom.commands.dispatch(commandEditor, "core:confirm")
+
+  describe ":write", ->
+    describe "when editing a new file", ->
+      beforeEach ->
+        editor.getBuffer().setText('abc\ndef')
+
+      it "opens the save dialog", ->
+        spyOn(atom, 'showSaveDialogSync')
+        keydown(':')
+        submitNormalModeInputText('write')
+        expect(atom.showSaveDialogSync).toHaveBeenCalled()
+
+      it "saves when a path is specified in the save dialog", ->
+        filePath = projectPath('write-from-save-dialog')
+        spyOn(atom, 'showSaveDialogSync').andReturn(filePath)
+        keydown(':')
+        submitNormalModeInputText('write')
+        expect(fs.existsSync(filePath)).toBe(true)
+        expect(fs.readFileSync(filePath, 'utf-8')).toEqual('abc\ndef')
+
+      it "saves when a path is specified in the save dialog", ->
+        spyOn(atom, 'showSaveDialogSync').andReturn(undefined)
+        spyOn(fs, 'writeFileSync')
+        keydown(':')
+        submitNormalModeInputText('write')
+        expect(fs.writeFileSync.calls.length).toBe(0)
+
+    describe "when editing an existing file", ->
+      filePath = ''
+      i = 0
+
+      beforeEach ->
+        i++
+        filePath = projectPath("write-#{i}")
+        editor.setText('abc\ndef')
+        editor.saveAs(filePath)
+
+      it "saves the file", ->
+        editor.setText('abc')
+        keydown(':')
+        submitNormalModeInputText('write')
+        expect(fs.readFileSync(filePath, 'utf-8')).toEqual('abc')
+        expect(editor.isModified()).toBe(false)
+
+      describe "with a specified path", ->
+        newPath = ''
+
+        beforeEach ->
+          newPath = path.relative(dir, "#{filePath}.new")
+          editor.getBuffer().setText('abc')
+          keydown(':')
+
+        afterEach ->
+          submitNormalModeInputText("write #{newPath}")
+          newPath = path.resolve(dir, fs.normalize(newPath))
+          expect(fs.existsSync(newPath)).toBe(true)
+          expect(fs.readFileSync(newPath, 'utf-8')).toEqual('abc')
+          expect(editor.isModified()).toBe(true)
+          fs.removeSync(newPath)
+
+        it "saves to the path", ->
+
+        it "expands .", ->
+          newPath = path.join('.', newPath)
+
+        it "expands ..", ->
+          newPath = path.join('..', newPath)
+
+        it "expands ~", ->
+          newPath = path.join('~', newPath)
+
+      it "throws an error with more than one path", ->
+        keydown(':')
+        submitNormalModeInputText('write path1 path2')
+        expect(atom.notifications.notifications[0].message).toEqual(
+          'Command error: Only one file name allowed'
+        )
+
+      describe "when the file already exists", ->
+        existsPath = ''
+
+        beforeEach ->
+          existsPath = projectPath('write-exists')
+          fs.writeFileSync(existsPath, 'abc')
+
+        afterEach ->
+          fs.removeSync(existsPath)
+
+        it "throws an error if the file already exists", ->
+          keydown(':')
+          submitNormalModeInputText("write #{existsPath}")
+          expect(atom.notifications.notifications[0].message).toEqual(
+            'Command error: File exists (add ! to override)'
+          )
+          expect(fs.readFileSync(existsPath, 'utf-8')).toEqual('abc')
+
+        it "writes if forced with :write!", ->
+          keydown(':')
+          submitNormalModeInputText("write! #{existsPath}")
+          expect(atom.notifications.notifications).toEqual([])
+          expect(fs.readFileSync(existsPath, 'utf-8')).toEqual('abc\ndef')
+
+  describe ":quit", ->
+    pane = null
+    beforeEach ->
+      waitsForPromise ->
+        pane = atom.workspace.getActivePane()
+        spyOn(pane, 'destroyActiveItem').andCallThrough()
+        atom.workspace.open()
+
+    it "closes the active pane item if not modified", ->
+      keydown(':')
+      submitNormalModeInputText('quit')
+      expect(pane.destroyActiveItem).toHaveBeenCalled()
+      expect(pane.getItems().length).toBe(1)
+
+    describe "when the active pane item is modified", ->
+      beforeEach ->
+        editor.getBuffer().setText('def')
+
+      it "opens the prompt to save", ->
+        spyOn(pane, 'promptToSaveItem')
+        keydown(':')
+        submitNormalModeInputText('quit')
+        expect(pane.promptToSaveItem).toHaveBeenCalled()
+
+  describe ":tabclose", ->
+    it "acts as an alias to :quit", ->
+      spyOn(Ex, 'tabclose').andCallThrough()
+      spyOn(Ex, 'quit').andCallThrough()
+      keydown(':')
+      submitNormalModeInputText('tabclose')
+      expect(Ex.quit).toHaveBeenCalledWith(Ex.tabclose.calls[0].args...)
+
+  describe ":tabnext", ->
+    pane = null
+    beforeEach ->
+      waitsForPromise ->
+        pane = atom.workspace.getActivePane()
+        atom.workspace.open().then -> atom.workspace.open()
+          .then -> atom.workspace.open()
+
+    it "switches to the next tab", ->
+      pane.activateItemAtIndex(1)
+      keydown(':')
+      submitNormalModeInputText('tabnext')
+      expect(pane.getActiveItemIndex()).toBe(2)
+
+    it "wraps around", ->
+      pane.activateItemAtIndex(pane.getItems().length - 1)
+      keydown(':')
+      submitNormalModeInputText('tabnext')
+      expect(pane.getActiveItemIndex()).toBe(0)
+
+  describe ":tabprevious", ->
+    pane = null
+    beforeEach ->
+      waitsForPromise ->
+        pane = atom.workspace.getActivePane()
+        atom.workspace.open().then -> atom.workspace.open()
+          .then -> atom.workspace.open()
+
+    it "switches to the previous tab", ->
+      pane.activateItemAtIndex(1)
+      keydown(':')
+      submitNormalModeInputText('tabprevious')
+      expect(pane.getActiveItemIndex()).toBe(0)
+
+    it "wraps around", ->
+      pane.activateItemAtIndex(0)
+      keydown(':')
+      submitNormalModeInputText('tabprevious')
+      expect(pane.getActiveItemIndex()).toBe(pane.getItems().length - 1)
+
+  describe ":wq", ->
+    beforeEach ->
+      spyOn(Ex, 'write').andCallThrough()
+      spyOn(Ex, 'quit')
+
+    it "writes the file, then quits", ->
+      spyOn(atom, 'showSaveDialogSync').andReturn(projectPath('wq-1'))
+      keydown(':')
+      submitNormalModeInputText('wq')
+      expect(Ex.write).toHaveBeenCalled()
+      # Since `:wq` only calls `:quit` after `:write` is finished, we need to
+      #  wait a bit for the `:quit` call to occur
+      waitsFor((-> Ex.quit.wasCalled), "the :quit command to be called", 100)
+
+    it "doesn't quit when the file is new and no path is specified in the save dialog", ->
+      spyOn(atom, 'showSaveDialogSync').andReturn(undefined)
+      keydown(':')
+      submitNormalModeInputText('wq')
+      expect(Ex.write).toHaveBeenCalled()
+      wasNotCalled = false
+      # FIXME: This seems dangerous, but setTimeout somehow doesn't work.
+      setImmediate((->
+        wasNotCalled = not Ex.quit.wasCalled))
+      waitsFor((-> wasNotCalled), 100)
+
+    it "passes the file name", ->
+      keydown(':')
+      submitNormalModeInputText('wq wq-2')
+      expect(Ex.write)
+        .toHaveBeenCalled()
+      expect(Ex.write.calls[0].args[1].trim()).toEqual('wq-2')
+      waitsFor((-> Ex.quit.wasCalled), "the :quit command to be called", 100)
+
+  describe ":xit", ->
+    it "acts as an alias to :wq", ->
+      spyOn(Ex, 'wq')
+      keydown(':')
+      submitNormalModeInputText('xit')
+      expect(Ex.wq).toHaveBeenCalled()
+
+  describe ":edit", ->
+    describe "without a file name", ->
+      it "reloads the file from the disk", ->
+        filePath = projectPath("edit-1")
+        editor.getBuffer().setText('abc')
+        editor.saveAs(filePath)
+        fs.writeFileSync(filePath, 'def')
+        keydown(':')
+        submitNormalModeInputText('edit')
+        # Reloading takes a bit
+        waitsFor((-> editor.getText() is 'def'),
+          "the editor's content to change", 100)
+
+      it "doesn't reload when the file has been modified", ->
+        filePath = projectPath("edit-2")
+        editor.getBuffer().setText('abc')
+        editor.saveAs(filePath)
+        editor.getBuffer().setText('abcd')
+        fs.writeFileSync(filePath, 'def')
+        keydown(':')
+        submitNormalModeInputText('edit')
+        expect(atom.notifications.notifications[0].message).toEqual(
+          'Command error: No write since last change (add ! to override)')
+        isntDef = false
+        setImmediate(-> isntDef = editor.getText() isnt 'def')
+        waitsFor((-> isntDef), "the editor's content not to change", 50)
+
+      it "reloads when the file has been modified and it is forced", ->
+        filePath = projectPath("edit-3")
+        editor.getBuffer().setText('abc')
+        editor.saveAs(filePath)
+        editor.getBuffer().setText('abcd')
+        fs.writeFileSync(filePath, 'def')
+        keydown(':')
+        submitNormalModeInputText('edit!')
+        expect(atom.notifications.notifications.length).toBe(0)
+        waitsFor((-> editor.getText() is 'def')
+          "the editor's content to change", 50)
+
+      it "throws an error when editing a new file", ->
+        editor.getBuffer().reload()
+        keydown(':')
+        submitNormalModeInputText('edit')
+        expect(atom.notifications.notifications[0].message).toEqual(
+          'Command error: No file name')
+        atom.commands.dispatch(editorElement, 'ex-mode:open')
+        submitNormalModeInputText('edit!')
+        expect(atom.notifications.notifications[1].message).toEqual(
+          'Command error: No file name')
+
+    describe "with a file name", ->
+      beforeEach ->
+        spyOn(atom.workspace, 'open')
+        editor.getBuffer().reload()
+
+      it "opens the specified path", ->
+        filePath = projectPath('edit-new-test')
+        keydown(':')
+        submitNormalModeInputText("edit #{filePath}")
+        expect(atom.workspace.open).toHaveBeenCalledWith(filePath)
+
+      it "opens a relative path", ->
+        keydown(':')
+        submitNormalModeInputText('edit edit-relative-test')
+        expect(atom.workspace.open).toHaveBeenCalledWith(
+          projectPath('edit-relative-test'))
+
+      it "throws an error if trying to open more than one file", ->
+        keydown(':')
+        submitNormalModeInputText('edit edit-new-test-1 edit-new-test-2')
+        expect(atom.workspace.open.callCount).toBe(0)
+        expect(atom.notifications.notifications[0].message).toEqual(
+          'Command error: Only one file name allowed')
+
+  describe ":tabedit", ->
+    it "acts as an alias to :edit if supplied with a path", ->
+      spyOn(Ex, 'tabedit').andCallThrough()
+      spyOn(Ex, 'edit')
+      keydown(':')
+      submitNormalModeInputText('tabedit tabedit-test')
+      expect(Ex.edit).toHaveBeenCalledWith(Ex.tabedit.calls[0].args...)
+
+    it "acts as an alias to :tabnew if not supplied with a path", ->
+      spyOn(Ex, 'tabedit').andCallThrough()
+      spyOn(Ex, 'tabnew')
+      keydown(':')
+      submitNormalModeInputText('tabedit  ')
+      expect(Ex.tabnew)
+        .toHaveBeenCalledWith(Ex.tabedit.calls[0].args...)
+
+  describe ":tabnew", ->
+    it "opens a new tab", ->
+      spyOn(atom.workspace, 'open')
+      keydown(':')
+      submitNormalModeInputText('tabnew')
+      expect(atom.workspace.open).toHaveBeenCalled()
+
+  describe ":split", ->
+    it "splits the current file upwards", ->
+      pane = atom.workspace.getActivePane()
+      spyOn(pane, 'splitUp').andCallThrough()
+      filePath = projectPath('split')
+      editor.saveAs(filePath)
+      keydown(':')
+      submitNormalModeInputText('split')
+      expect(pane.splitUp).toHaveBeenCalled()
+      # FIXME: Should test whether the new pane contains a TextEditor
+      #        pointing to the same path
+
+  describe ":vsplit", ->
+    it "splits the current file to the left", ->
+      pane = atom.workspace.getActivePane()
+      spyOn(pane, 'splitLeft').andCallThrough()
+      filePath = projectPath('vsplit')
+      editor.saveAs(filePath)
+      keydown(':')
+      submitNormalModeInputText('vsplit')
+      expect(pane.splitLeft).toHaveBeenCalled()
+      # FIXME: Should test whether the new pane contains a TextEditor
+      #        pointing to the same path
+
+  describe ":delete", ->
+    beforeEach ->
+      editor.setText('abc\ndef\nghi\njkl')
+      editor.setCursorBufferPosition([2, 0])
+
+    it "deletes the current line", ->
+      keydown(':')
+      submitNormalModeInputText('delete')
+      expect(editor.getText()).toEqual('abc\ndef\njkl')
+
+    it "deletes the lines in the given range", ->
+      processedOpStack = false
+      exState.onDidProcessOpStack -> processedOpStack = true
+      keydown(':')
+      submitNormalModeInputText('1,2delete')
+      expect(editor.getText()).toEqual('ghi\njkl')
+
+      waitsFor -> processedOpStack
+      editor.setText('abc\ndef\nghi\njkl')
+      editor.setCursorBufferPosition([1, 1])
+      # For some reason, keydown(':') doesn't work here :/
+      atom.commands.dispatch(editorElement, 'ex-mode:open')
+      submitNormalModeInputText(',/k/delete')
+      expect(editor.getText()).toEqual('abc\n')
+
+    it "undos deleting several lines at once", ->
+      keydown(':')
+      submitNormalModeInputText('-1,.delete')
+      expect(editor.getText()).toEqual('abc\njkl')
+      atom.commands.dispatch(editorElement, 'core:undo')
+      expect(editor.getText()).toEqual('abc\ndef\nghi\njkl')
+
+  describe ":substitute", ->
+    beforeEach ->
+      editor.setText('abcaABC\ndefdDEF\nabcaABC')
+      editor.setCursorBufferPosition([0, 0])
+
+    it "replaces a character on the current line", ->
+      keydown(':')
+      submitNormalModeInputText(':substitute /a/x')
+      expect(editor.getText()).toEqual('xbcaABC\ndefdDEF\nabcaABC')
+
+    it "doesn't need a space before the arguments", ->
+      keydown(':')
+      submitNormalModeInputText(':substitute/a/x')
+      expect(editor.getText()).toEqual('xbcaABC\ndefdDEF\nabcaABC')
+
+    it "respects modifiers passed to it", ->
+      keydown(':')
+      submitNormalModeInputText(':substitute/a/x/g')
+      expect(editor.getText()).toEqual('xbcxABC\ndefdDEF\nabcaABC')
+
+      atom.commands.dispatch(editorElement, 'ex-mode:open')
+      submitNormalModeInputText(':substitute/a/x/gi')
+      expect(editor.getText()).toEqual('xbcxxBC\ndefdDEF\nabcaABC')
+
+    it "replaces on multiple lines", ->
+      keydown(':')
+      submitNormalModeInputText(':%substitute/abc/ghi')
+      expect(editor.getText()).toEqual('ghiaABC\ndefdDEF\nghiaABC')
+
+      atom.commands.dispatch(editorElement, 'ex-mode:open')
+      submitNormalModeInputText(':%substitute/abc/ghi/ig')
+      expect(editor.getText()).toEqual('ghiaghi\ndefdDEF\nghiaghi')
+
+    it "can't be delimited by letters", ->
+      keydown(':')
+      submitNormalModeInputText(':substitute nanxngi')
+      expect(atom.notifications.notifications[0].message).toEqual(
+        "Command error: Regular expressions can't be delimited by letters")
+      expect(editor.getText()).toEqual('abcaABC\ndefdDEF\nabcaABC')
+
+    describe "capturing groups", ->
+      beforeEach ->
+        editor.setText('abcaABC\ndefdDEF\nabcaABC')
+
+      it "replaces \\1 with the first group", ->
+        keydown(':')
+        submitNormalModeInputText(':substitute/bc(.{2})/X\\1X')
+        expect(editor.getText()).toEqual('aXaAXBC\ndefdDEF\nabcaABC')
+
+      it "replaces multiple groups", ->
+        keydown(':')
+        submitNormalModeInputText(':substitute/a([a-z]*)aA([A-Z]*)/X\\1XY\\2Y')
+        expect(editor.getText()).toEqual('XbcXYBCY\ndefdDEF\nabcaABC')
+
+      it "replaces \\0 with the entire match", ->
+        keydown(':')
+        submitNormalModeInputText(':substitute/ab(ca)AB/X\\0X')
+        expect(editor.getText()).toEqual('XabcaABXC\ndefdDEF\nabcaABC')
+
+  describe ":set", ->
+    it "throws an error without a specified option", ->
+      keydown(':')
+      submitNormalModeInputText(':set')
+      expect(atom.notifications.notifications[0].message).toEqual(
+        'Command error: No option specified')
+
+    it "sets multiple options at once", ->
+      atom.config.set('editor.showInvisibles', false)
+      atom.config.set('editor.showLineNumbers', false)
+      keydown(':')
+      submitNormalModeInputText(':set list number')
+      expect(atom.config.get('editor.showInvisibles')).toBe(true)
+      expect(atom.config.get('editor.showLineNumbers')).toBe(true)
+
+    describe "the options", ->
+      beforeEach ->
+        atom.config.set('editor.showInvisibles', false)
+        atom.config.set('editor.showLineNumbers', false)
+
+      it "sets (no)list", ->
+        keydown(':')
+        submitNormalModeInputText(':set list')
+        expect(atom.config.get('editor.showInvisibles')).toBe(true)
+        atom.commands.dispatch(editorElement, 'ex-mode:open')
+        submitNormalModeInputText(':set nolist')
+        expect(atom.config.get('editor.showInvisibles')).toBe(false)
+
+      it "sets (no)nu(mber)", ->
+        keydown(':')
+        submitNormalModeInputText(':set nu')
+        expect(atom.config.get('editor.showLineNumbers')).toBe(true)
+        atom.commands.dispatch(editorElement, 'ex-mode:open')
+        submitNormalModeInputText(':set nonu')
+        expect(atom.config.get('editor.showLineNumbers')).toBe(false)
+        atom.commands.dispatch(editorElement, 'ex-mode:open')
+        submitNormalModeInputText(':set number')
+        expect(atom.config.get('editor.showLineNumbers')).toBe(true)
+        atom.commands.dispatch(editorElement, 'ex-mode:open')
+        submitNormalModeInputText(':set nonumber')
+        expect(atom.config.get('editor.showLineNumbers')).toBe(false)
diff --git a/atom/packages/ex-mode/spec/ex-mode-spec.coffee b/atom/packages/ex-mode/spec/ex-mode-spec.coffee
deleted file mode 100644 (file)
index bbc7fd7..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-ExMode = require '../lib/ex-mode'
-
-# Use the command `window:run-package-specs` (cmd-alt-ctrl-p) to run specs.
-#
-# To run a specific `it` or `describe` block add an `f` to the front (e.g. `fit`
-# or `fdescribe`). Remove the `f` to unfocus the block.
-
-describe "ExMode", ->
-  [workspaceElement, activationPromise] = []
-
-  beforeEach ->
-    workspaceElement = atom.views.getView(atom.workspace)
-    activationPromise = atom.packages.activatePackage('ex-mode')
-
-  describe "when the ex-mode:toggle event is triggered", ->
-    it "hides and shows the modal panel", ->
-      # Before the activation event the view is not on the DOM, and no panel
-      # has been created
-      expect(workspaceElement.querySelector('.ex-mode')).not.toExist()
-
-      # This is an activation event, triggering it will cause the package to be
-      # activated.
-      atom.commands.dispatch workspaceElement, 'ex-mode:toggle'
-
-      waitsForPromise ->
-        activationPromise
-
-      runs ->
-        expect(workspaceElement.querySelector('.ex-mode')).toExist()
-
-        exModeElement = workspaceElement.querySelector('.ex-mode')
-        expect(exModeElement).toExist()
-
-        exModePanel = atom.workspace.panelForItem(exModeElement)
-        expect(exModePanel.isVisible()).toBe true
-        atom.commands.dispatch workspaceElement, 'ex-mode:toggle'
-        expect(exModePanel.isVisible()).toBe false
-
-    it "hides and shows the view", ->
-      # This test shows you an integration test testing at the view level.
-
-      # Attaching the workspaceElement to the DOM is required to allow the
-      # `toBeVisible()` matchers to work. Anything testing visibility or focus
-      # requires that the workspaceElement is on the DOM. Tests that attach the
-      # workspaceElement to the DOM are generally slower than those off DOM.
-      jasmine.attachToDOM(workspaceElement)
-
-      expect(workspaceElement.querySelector('.ex-mode')).not.toExist()
-
-      # This is an activation event, triggering it causes the package to be
-      # activated.
-      atom.commands.dispatch workspaceElement, 'ex-mode:toggle'
-
-      waitsForPromise ->
-        activationPromise
-
-      runs ->
-        # Now we can test for view visibility
-        exModeElement = workspaceElement.querySelector('.ex-mode')
-        expect(exModeElement).toBeVisible()
-        atom.commands.dispatch workspaceElement, 'ex-mode:toggle'
-        expect(exModeElement).not.toBeVisible()
diff --git a/atom/packages/ex-mode/spec/ex-mode-view-spec.coffee b/atom/packages/ex-mode/spec/ex-mode-view-spec.coffee
deleted file mode 100644 (file)
index d94ddf1..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-ExModeView = require '../lib/ex-mode-view'
-
-describe "ExModeView", ->
-  it "has one valid test", ->
-    expect("life").toBe "easy"
diff --git a/atom/packages/ex-mode/spec/spec-helper.coffee b/atom/packages/ex-mode/spec/spec-helper.coffee
new file mode 100644 (file)
index 0000000..9ec4d58
--- /dev/null
@@ -0,0 +1,65 @@
+ExState = require '../lib/ex-state'
+GlobalExState = require '../lib/global-ex-state'
+
+beforeEach ->
+  atom.workspace ||= {}
+
+activateExMode = ->
+  atom.workspace.open().then ->
+    atom.commands.dispatch(atom.views.getView(atom.workspace), 'ex-mode:open')
+    keydown('escape')
+    atom.workspace.getActivePane().destroyActiveItem()
+
+
+getEditorElement = (callback) ->
+  textEditor = null
+
+  waitsForPromise ->
+    atom.workspace.open().then (e) ->
+      textEditor = e
+
+  runs ->
+    # element = document.createElement("atom-text-editor")
+    # element.setModel(textEditor)
+    # element.classList.add('vim-mode')
+    # element.exState = new ExState(element, new GlobalExState)
+    #
+    # element.addEventListener "keydown", (e) ->
+    #   atom.keymaps.handleKeyboardEvent(e)
+
+    element = atom.views.getView(textEditor)
+
+    callback(element)
+
+dispatchKeyboardEvent = (target, eventArgs...) ->
+  e = document.createEvent('KeyboardEvent')
+  e.initKeyboardEvent(eventArgs...)
+  # 0 is the default, and it's valid ASCII, but it's wrong.
+  Object.defineProperty(e, 'keyCode', get: -> undefined) if e.keyCode is 0
+  target.dispatchEvent e
+
+dispatchTextEvent = (target, eventArgs...) ->
+  e = document.createEvent('TextEvent')
+  e.initTextEvent(eventArgs...)
+  target.dispatchEvent e
+
+keydown = (key, {element, ctrl, shift, alt, meta, raw}={}) ->
+  key = "U+#{key.charCodeAt(0).toString(16)}" unless key is 'escape' or raw?
+  element ||= document.activeElement
+  eventArgs = [
+    true, # bubbles
+    true, # cancelable
+    null, # view
+    key,  # key
+    0,    # location
+    ctrl, alt, shift, meta
+  ]
+
+  canceled = not dispatchKeyboardEvent(element, 'keydown', eventArgs...)
+  dispatchKeyboardEvent(element, 'keypress', eventArgs...)
+  if not canceled
+    if dispatchTextEvent(element, 'textInput', eventArgs...)
+      element.value += key
+  dispatchKeyboardEvent(element, 'keyup', eventArgs...)
+
+module.exports = {keydown, getEditorElement, activateExMode}
index da5d1df83a57a62219cb0cb68c676a4f62252008..2a714b00c778b11ecfc4508a143b9f62b15160c0 100644 (file)
@@ -6,3 +6,25 @@
 
 .ex-mode {
 }
 
 .ex-mode {
 }
+
+div[is=ex-command-mode-input] atom-text-editor[mini]::before {
+  content: ":";
+  opacity: 0.5;
+}
+
+div[is=vim-normal-mode-input] atom-text-editor[mini]::before {
+  content: "/";
+  opacity: 0.5;
+}
+
+.command-mode-input atom-text-editor[mini] {
+  background-color: inherit;
+  border: none;
+  width: 100%;
+  font-weight: normal;
+  color: @text-color;
+  line-height: 1.28;
+  cursor: default;
+  white-space: nowrap;
+  padding-left: 10px;
+}
index f89e8de36226121a341d27c4aa37bcf67a04a330..6b70a5dc1d0fc041484d7d77360c18e11ab459c6 100644 (file)
@@ -1,3 +1,22 @@
+## 0.2.13 - Revert
+- Completely remove `activationCommands`.
+
+## 0.2.12 - Improve
+- Now activated by `vim-mode:activate-blockwise-visual-mode`.
+- Delete deprecated keymap notification.
+
+## 0.2.11 - Quick FIX for #3
+- Disable activationCommands to avoid `getEditorState` throw error because of `@vimModeService` is undefined.
+
+## 0.2.10
+
+## 0.2.9 - Follow renaming to NormalMode
+- Use `activateNormalMode` instead of `activateCommandMode`.
+
+## 0.2.8 - Improve
+* Refactoring.
+* `activationCommands`.
+
 ## 0.2.7 - Improve
 * `ctrl-v` within visual-block now work same as escape. #1
 
 ## 0.2.7 - Improve
 * `ctrl-v` within visual-block now work same as escape. #1
 
index 1be6782700168fe6b5fddfdddb52246885c36805..7918470defb997c59df7d04fe078dbfd9f35c7e5 100644 (file)
@@ -17,7 +17,8 @@ For older version user
 * Remove explicit keymap from `keymap.cson` and use default keymap.
 
 # Limitation
 * Remove explicit keymap from `keymap.cson` and use default keymap.
 
 # Limitation
-- Currently yank and paste for block range is not suppoted.
+- Count not supported.
+- Currently yank and paste for block range is not supported.
 - No support for non-contiguous multi selection.
 
 # Todo
 - No support for non-contiguous multi selection.
 
 # Todo
index 61cfe761b0ab66792541855a60fd284990903873..dc5a5c21218401e89003f5144ab11415e5427f78 100644 (file)
@@ -14,15 +14,14 @@ module.exports =
   activate: (state) ->
     @disposables = new CompositeDisposable
     blockwiseCommands = {}
   activate: (state) ->
     @disposables = new CompositeDisposable
     blockwiseCommands = {}
-    # [TODO] remove 'h', 'l'  after some period.
-    commands = 'jkhloDCIA'.split('')
+    commands = 'jkoDCIA'.split('')
     commands.push 'escape', 'ctrl-v'
     for command in commands
       do (command) =>
         name = "#{@prefix}:#{command}"
         blockwiseCommands[name] = (event) => @blockOperation(event, command)
 
     commands.push 'escape', 'ctrl-v'
     for command in commands
       do (command) =>
         name = "#{@prefix}:#{command}"
         blockwiseCommands[name] = (event) => @blockOperation(event, command)
 
-    blockwiseCommands["#{@prefix}:toggle-debug"] = => @toggleDebug()
+    blockwiseCommands["#{@prefix}:toggle-debug"] = => @toggleDebug()
     @disposables.add atom.commands.add('atom-text-editor', blockwiseCommands)
     @reset()
 
     @disposables.add atom.commands.add('atom-text-editor', blockwiseCommands)
     @reset()
 
@@ -63,21 +62,20 @@ module.exports =
 
     currentRow  = editor.getLastCursor()?.getBufferRow()
     @startRow  ?= currentRow
 
     currentRow  = editor.getLastCursor()?.getBufferRow()
     @startRow  ?= currentRow
-    # @debug "@startRow = #{@startRow}"
 
     switch command
       when 'o'
         @startRow = currentRow
       when 'D', 'C'
 
     switch command
       when 'o'
         @startRow = currentRow
       when 'D', 'C'
-        vimState.activateCommandMode()
+        vimState.activateNormalMode()
         event.abortKeyBinding()
       when 'escape', 'ctrl-v'
         event.abortKeyBinding()
       when 'escape', 'ctrl-v'
-        vimState.activateCommandMode()
+        vimState.activateNormalMode()
         editor.clearSelections()
       when 'j', 'k'
         editor.clearSelections()
       when 'j', 'k'
-        cursorPositions = editor.getCursorsOrderedByBufferPosition()
-        cursorTop       = _.first cursorPositions
-        cursorBottom    = _.last cursorPositions
+        cursors      = editor.getCursorsOrderedByBufferPosition()
+        cursorTop    = _.first cursors
+        cursorBottom = _.last cursors
 
         if (command is 'j' and cursorTop.getBufferRow() >= @startRow) or
             (command is 'k' and cursorBottom.getBufferRow() <= @startRow)
 
         if (command is 'j' and cursorTop.getBufferRow() >= @startRow) or
             (command is 'k' and cursorBottom.getBufferRow() <= @startRow)
@@ -125,22 +123,12 @@ module.exports =
           cursor.setBufferPosition(pointTarget)
 
         adjustCursor(selection) for selection in editor.getSelections()
           cursor.setBufferPosition(pointTarget)
 
         adjustCursor(selection) for selection in editor.getSelections()
-        vimState.activateCommandMode()
+        vimState.activateNormalMode()
         vimState.activateInsertMode()
 
         if command is 'A' and  cursorsAdjusted.length
           cursor.moveRight() for cursor in cursorsAdjusted
 
         vimState.activateInsertMode()
 
         if command is 'A' and  cursorsAdjusted.length
           cursor.moveRight() for cursor in cursorsAdjusted
 
-      else
-        event.abortKeyBinding()
-        content = """
-          *#{@prefix}*
-          * From version 0.2.5, `#{@prefix}` provide default keymap.
-          * And `h`, `l` command become obsolete.
-          * Remove all explicit keymap from `keymap.cson`.
-          """
-        atom.notifications.addWarning content, dismissable: true
-
     unless @isVisualBlockMode vimState
       @reset()
 
     unless @isVisualBlockMode vimState
       @reset()
 
index 1650d7d56d5c9622651d4ea4cedf81d3dcd23d97..067af6fd6f92cc8ef58ffcd01e51fb4aedb38663 100644 (file)
@@ -15,7 +15,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/underscore-plus.git"
+    "url": "git+https://github.com/atom/underscore-plus.git"
   },
   "bugs": {
     "url": "https://github.com/atom/underscore-plus/issues"
   },
   "bugs": {
     "url": "https://github.com/atom/underscore-plus/issues"
index d0fe93356836ea2d370fd1f2fa6779002244407c..b874d4145f1591a2ef4c5cf10d89a8c5ac3c9988 100644 (file)
@@ -1,11 +1,11 @@
 {
   "name": "vim-mode-visual-block",
   "main": "./lib/main",
 {
   "name": "vim-mode-visual-block",
   "main": "./lib/main",
-  "version": "0.2.7",
+  "version": "0.2.13",
   "description": "Add visual-blockwise feature to vim-mode",
   "repository": {
     "type": "git",
   "description": "Add visual-blockwise feature to vim-mode",
   "repository": {
     "type": "git",
-    "url": "https://github.com/t9md/atom-vim-mode-visual-block"
+    "url": "git+https://github.com/t9md/atom-vim-mode-visual-block.git"
   },
   "license": "MIT",
   "engines": {
   },
   "license": "MIT",
   "engines": {
   "dependencies": {
     "underscore-plus": "^1.6.6"
   },
   "dependencies": {
     "underscore-plus": "^1.6.6"
   },
-  "readme": "# vim-mode-visual-block\n\nAdd visual-block operation to [vim-mode](https://atom.io/packages/vim-mode).\n\n![gif](https://raw.githubusercontent.com/t9md/t9md/375d45f661b76cd8fd874dbcacf93602e7d75c99/img/vim-mode-visual-blockwise.gif)\n\n# What's this?\n\n**Temporarily** workaround, until vim-mode support visual block mode natively.\nI'm not intended to complete solution.\n\n# Keymap\n\nFrom version 0.2.5, starting to provide [default keymap](https://github.com/t9md/atom-vim-mode-visual-block/blob/master/keymaps/vim-mode-visual-block.cson).  \n\nFor older version user\n* Remove explicit keymap from `keymap.cson` and use default keymap.\n\n# Limitation\n- Currently yank and paste for block range is not suppoted.\n- No support for non-contiguous multi selection.\n\n# Todo\n* [x] Precise state check when escape from visual-block.\n* [x] Support other insert-mode initiator like `a`, `i`, `C`.\n* [ ] Yank and paste support.\n* [ ] Concatenate undo transaction?.\n",
+  "readme": "# vim-mode-visual-block\n\nAdd visual-block operation to [vim-mode](https://atom.io/packages/vim-mode).\n\n![gif](https://raw.githubusercontent.com/t9md/t9md/375d45f661b76cd8fd874dbcacf93602e7d75c99/img/vim-mode-visual-blockwise.gif)\n\n# What's this?\n\n**Temporarily** workaround, until vim-mode support visual block mode natively.\nI'm not intended to complete solution.\n\n# Keymap\n\nFrom version 0.2.5, starting to provide [default keymap](https://github.com/t9md/atom-vim-mode-visual-block/blob/master/keymaps/vim-mode-visual-block.cson).  \n\nFor older version user\n* Remove explicit keymap from `keymap.cson` and use default keymap.\n\n# Limitation\n- Count not supported.\n- Currently yank and paste for block range is not supported.\n- No support for non-contiguous multi selection.\n\n# Todo\n* [x] Precise state check when escape from visual-block.\n* [x] Support other insert-mode initiator like `a`, `i`, `C`.\n* [ ] Yank and paste support.\n* [ ] Concatenate undo transaction?.\n",
   "readmeFilename": "README.md",
   "bugs": {
     "url": "https://github.com/t9md/atom-vim-mode-visual-block/issues"
   },
   "readmeFilename": "README.md",
   "bugs": {
     "url": "https://github.com/t9md/atom-vim-mode-visual-block/issues"
   },
-  "homepage": "https://github.com/t9md/atom-vim-mode-visual-block",
-  "_id": "vim-mode-visual-block@0.2.7",
-  "_shasum": "13e1098ad2d14b834a6708c602295b05399147f4",
-  "_resolved": "file:../d-11562-87855-1gkfksx/package.tgz",
-  "_from": "../d-11562-87855-1gkfksx/package.tgz",
+  "homepage": "https://github.com/t9md/atom-vim-mode-visual-block#readme",
+  "_id": "vim-mode-visual-block@0.2.13",
+  "_shasum": "5f4d8288c01082f685c4dc4bb039241e61d624e6",
+  "_resolved": "file:../d-115828-94488-fbcgjf/package.tgz",
+  "_from": "../d-115828-94488-fbcgjf/package.tgz",
   "_atomModuleCache": {
     "version": 1,
     "dependencies": [
   "_atomModuleCache": {
     "version": 1,
     "dependencies": [
index d73c8e280adfb4532038348f9a0fde5deec08550..20cfe5175d84c66d3536c1b2e78bdc857b0c007e 100644 (file)
@@ -9,3 +9,7 @@ script: 'curl -s https://raw.githubusercontent.com/atom/ci/master/build-package.
 
 git:
   depth: 10
 
 git:
   depth: 10
+
+branches:
+  only:
+    - master
index 2fea87bddbcf949a758414b7086ebfd2fee9744a..c179811f787ed9b71ed1a11bd0e0ceea841cb6b1 100644 (file)
@@ -1,35 +1,84 @@
 ## HEAD
 
 ## HEAD
 
+## 0.60
+
+* Fixed an issue where commands that took one character of input didn't
+  work with characters composed via IME - @jacekkopecky
+* Fixed an issue where the '%' motion would select the wrong range
+  when moving backwards - @jacekkopecky
+
+## 0.59
+
+* Fixed an issue where normal Atom commands and mouse drags couldn't
+  move the cursor to the end of a line - @jacekkopecky
+
+## 0.58
+
+* Fixed repetition of commands executed in visual mode - @jacekkopecky
+* Fixed repetition of indentation commands - @mleeds95
+* Fixed `cc` command's behavior on the file's only line @jacekkopecky
+* Fixed key-binding for return-from-tag - @bronson
+* Implemented shared 'f' and 't' state between editors - @jacekkopecky
+* Added insert-mode commands for copying line above and below - @jacekkopecky
+* Fixed an exception when prefixing a text object with a count - @jacekkopecky
+* Fixed handling of blank lines in the `ip` and `ap` text objects - @MarkusSN
+
+## 0.57
+
+* Added replace ('R') mode! - @jacekkopecky
+* Added the `iW` and `aW` text objects! - @jacekkopecky
+* Made the 't' operator behave correctly when the cursor was already on the  
+  searched  character - @jacekkopecky
+* Fixed the position of the cursor after pasting with 'p' - @jacekkopecky
+
+## 0.56
+
+* Renamed 'command mode' to 'normal mode' - @coolwanglu
+
+## 0.55
+
+* Fixed indentation commands so that they exit visual mode - @bronson
+* Implemented horizontal scrolling commands `z s` and `z e` - @jacekkopecky
+
+## 0.54
+
+* Fixed an error where repeating an insertion command would not handle
+  characters inserted by packages like autocomplete or bracket-matcher - @jacekkopecky
+
+## 0.53
+
+* Fixed an exception that would occur when using `.` to repeat in certain cases.
+
 ## 0.52
 
 ## 0.52
 
-* Fix incorrect cursor motion when exiting visual mode w/ a reversed
+* Fixed incorrect cursor motion when exiting visual mode w/ a reversed
   selection - @t9md
   selection - @t9md
-* Add setting to configure the regexp used for numbers and the `ctrl-a`
+* Added setting to configure the regexp used for numbers and the `ctrl-a`
   and `ctrl-x` keybindings - @jacekkopecky
 
 ## 0.50
 
   and `ctrl-x` keybindings - @jacekkopecky
 
 ## 0.50
 
-* Fix cursor position after `dd` command - @bronson
+* Fixed cursor position after `dd` command - @bronson
 * Implement `ap` text-object differently than `ip` - MarkusSN
 
 ## 0.49
 
 * Implement `ap` text-object differently than `ip` - MarkusSN
 
 ## 0.49
 
-* Fix an issue that caused the cursor to move left incorrectly when near
+* Fixed an issue that caused the cursor to move left incorrectly when near
   the end of a line.
 
 ## 0.48
 
   the end of a line.
 
 ## 0.48
 
-* Fix usages of deprecated APIs
+* Fixed usages of deprecated APIs
 
 ## 0.47
 
 
 ## 0.47
 
-* Fix usages of deprecated APIs - @hitsmaxft, @jacekkopecky
+* Fixed usages of deprecated APIs - @hitsmaxft, @jacekkopecky
 
 ## 0.46
 
 
 ## 0.46
 
-* Fix issues with deleting when there are multiple selections - @jacekkopecky
-* Add paragraph text-objects 'ip' and 'ap' - @t9md
-* Fix use of a deprecated method - @akonwi
+* Fixed issues with deleting when there are multiple selections - @jacekkopecky
+* Added paragraph text-objects 'ip' and 'ap' - @t9md
+* Fixed use of a deprecated method - @akonwi
 
 ## 0.45
 
 
 ## 0.45
 
index 1562a91614ee828b82e1a33ae281616afdf0317f..200a3bbaf05540f09a6c982581a8e7aaed0a03fd 100644 (file)
@@ -10,15 +10,14 @@ run `apm install vim-mode` from the command line.
 
 ### Current Status
 
 
 ### Current Status
 
-Sizable portions of Vim's command mode work as you'd expect, including
+Sizable portions of Vim's normal mode work as you'd expect, including
 many complex combinations. Even so, this package is far from finished (Vim
 wasn't built in a day).
 
 If you want the vim ex line (for `:w`, `:s`, etc.), you can try [ex-mode](https://atom.io/packages/ex-mode)
 which works in conjuction with this plugin.
 
 many complex combinations. Even so, this package is far from finished (Vim
 wasn't built in a day).
 
 If you want the vim ex line (for `:w`, `:s`, etc.), you can try [ex-mode](https://atom.io/packages/ex-mode)
 which works in conjuction with this plugin.
 
-Currently, vim-mode requires soft line wraps to be disabled, and has some issues
-with international keyboard layouts.
+Currently, vim-mode has some issues with international keyboard layouts.
 
 If there's a feature of Vim you're missing, it might just be that you use it
 more often than other developers. Adding a feature can be quick and easy. Check
 
 If there's a feature of Vim you're missing, it might just be that you use it
 more often than other developers. Adding a feature can be quick and easy. Check
@@ -28,7 +27,7 @@ to see examples of community contributions. We're looking forward to yours, too.
 ### Documentation
 
 * [Overview](https://github.com/atom/vim-mode/blob/master/docs/overview.md)
 ### Documentation
 
 * [Overview](https://github.com/atom/vim-mode/blob/master/docs/overview.md)
-* [Motions](https://github.com/atom/vim-mode/blob/master/docs/motions.md)
+* [Motions and Text Objects](https://github.com/atom/vim-mode/blob/master/docs/motions.md)
 * [Operators](https://github.com/atom/vim-mode/blob/master/docs/operators.md)
 * [Windows](https://github.com/atom/vim-mode/blob/master/docs/windows.md)
 * [Scrolling](https://github.com/atom/vim-mode/blob/master/docs/scrolling.md)
 * [Operators](https://github.com/atom/vim-mode/blob/master/docs/operators.md)
 * [Windows](https://github.com/atom/vim-mode/blob/master/docs/windows.md)
 * [Scrolling](https://github.com/atom/vim-mode/blob/master/docs/scrolling.md)
index 77442e67b510ba12f65e1eabb39dd4b8780e6a1e..ab77fdddcf1884e1d6cf9bee4ab1ca81ee7fff3a 100644 (file)
 * [;](http://vimhelp.appspot.com/motion.txt.html#%3B)
 * [,](http://vimhelp.appspot.com/motion.txt.html#%2C)
 * [/ and ?](http://vimhelp.appspot.com/pattern.txt.html#search-commands) (including `//` and `??`)
 * [;](http://vimhelp.appspot.com/motion.txt.html#%3B)
 * [,](http://vimhelp.appspot.com/motion.txt.html#%2C)
 * [/ and ?](http://vimhelp.appspot.com/pattern.txt.html#search-commands) (including `//` and `??`)
+
+## Implemented Text Objects
+
+[Vim text objects](http://vimhelp.appspot.com/motion.txt.html#object-select)
+
+* ``a "``   ``i "``
+* ``a '``   ``i '``
+* ``a ```   ``i ```
+* ``a (``   ``i (``
+* ``a )``   ``i )``
+* ``a <``   ``i <``
+* ``a >``   ``i >``
+* ``a [``   ``i [``
+* ``a ]``   ``i ]``
+* ``a {``   ``i {``
+* ``a }``   ``i }``
+* ``a b``   ``i b``
+* ``a B``   ``i B``
+* ``a p``   ``i p``
+* ``a w``   ``i w``
+* ``a W``   ``i W``
+* ``i t``
index d816daa7d52388432ee1a650cf360227a558f524..dbfc45eb0f22670b471b70e011ef3e06044f38f0 100644 (file)
@@ -15,7 +15,7 @@
   * `c2c` - repeated linewise
   * `C` - change to the end of the line
 * [Adding and subtracting](http://vimhelp.appspot.com/change.txt.html#CTRL-A)
   * `c2c` - repeated linewise
   * `C` - change to the end of the line
 * [Adding and subtracting](http://vimhelp.appspot.com/change.txt.html#CTRL-A)
-  * `ctrl-a` and `ctrl-x` in command mode to increase/decrease numbers in text
+  * `ctrl-a` and `ctrl-x` in normal mode to increase/decrease numbers in text
 * [Yank](http://vimhelp.appspot.com/change.txt.html#yank)
   * `vwy` - works in visual mode
   * `yw` - with a motion
 * [Yank](http://vimhelp.appspot.com/change.txt.html#yank)
   * `vwy` - works in visual mode
   * `yw` - with a motion
 * Indent/Outdent/Auto-indent
   * `vw>` - works in visual mode
   * `>>` - indent current line one level
 * Indent/Outdent/Auto-indent
   * `vw>` - works in visual mode
   * `>>` - indent current line one level
+  * `>2>` - repeated linewise
+  * `v2>` - repeat indent operation in visual mode
   * `<<` - outdent current line one level
   * `<<` - outdent current line one level
+  * `<2<` - repeated linewise
+  * `v2<` - repeat outdent operation in visual mode
   * `==` - auto-indents current line
 * [Put](http://vimhelp.appspot.com/change.txt.html#p)
   * `p` - default register
   * `P` - pastes the default register before the current cursor.
   * `==` - auto-indents current line
 * [Put](http://vimhelp.appspot.com/change.txt.html#p)
   * `p` - default register
   * `P` - pastes the default register before the current cursor.
-  * `"ap` - supports registers (only named a-h, pending more
-    advanced atom keymap support)
+  * `"ap` - supports registers
+  * `ctrl-r a` or `ctrl-r "` etc. - supports pasting register content in insert mode
 * [Join](http://vimhelp.appspot.com/change.txt.html#J)
   * `J` - joins the current line with the immediately following line.
 * [Mark](http://vimhelp.appspot.com/motion.txt.html#m)
 * [Join](http://vimhelp.appspot.com/change.txt.html#J)
   * `J` - joins the current line with the immediately following line.
 * [Mark](http://vimhelp.appspot.com/motion.txt.html#m)
index 3f91ea909c595c535a1904c7318daf060918ae88..c59176ca63ab77e2c7f0db344a9f7b9571f8330e 100644 (file)
@@ -1,8 +1,14 @@
 ## Overview
 
 ## Overview
 
-* There are only currently two modes, command mode and insert mode.
+* There are only currently two modes, normal mode and insert mode.
 * Motions have repeat support, `d3w` will delete three words.
 * Insert mode can be entered using `i`, `I`, `a`, `A`, `o`, or `O`.
 * Motions have repeat support, `d3w` will delete three words.
 * Insert mode can be entered using `i`, `I`, `a`, `A`, `o`, or `O`.
+  * The following commands are supported in insert mode:
+    * `ctrl-y` to copy the character right above the cursor
+    * `ctrl-e` to copy the character right below the cursor (**disabled by default**, see note&nbsp;1 below)
+* Replace mode can be entered using `R`
+  * Limitations:
+    * If repeating with `.` gets a bit confused (e.g. by multiple cursors or when more than one line was typed), please report it with steps to reproduce if you can.
 * Registers are a work in progress
   * What Exists:
     * `a-z` - Named registers
 * Registers are a work in progress
   * What Exists:
     * `a-z` - Named registers
   * What Doesn't Exist:
     * default buffer doesn't yet save on delete operations.
 * Setting `wrapLeftRightMotion` acts like VIM's whichwrap=h,l,<,>
   * What Doesn't Exist:
     * default buffer doesn't yet save on delete operations.
 * Setting `wrapLeftRightMotion` acts like VIM's whichwrap=h,l,<,>
+
+
+#### Notes
+
+1. To enable the VIM key binding `ctrl-e` to copy the character right below the cursor, please put this in your `keymap.cson`:
+
+```
+'atom-text-editor.vim-mode.insert-mode':
+  'ctrl-e': 'vim-mode:copy-from-line-below'
+```
index 348b395c113ab09535e88300f00fc71a2e24fe66..bfd0506844242ae9744c5ccd7cb9348e78e7fd2e 100644 (file)
@@ -12,3 +12,5 @@
 * [zz](http://vimhelp.appspot.com/scroll.txt.html#zz)
 * [z-](http://vimhelp.appspot.com/scroll.txt.html#z-)
 * [zb](http://vimhelp.appspot.com/scroll.txt.html#zb)
 * [zz](http://vimhelp.appspot.com/scroll.txt.html#zz)
 * [z-](http://vimhelp.appspot.com/scroll.txt.html#z-)
 * [zb](http://vimhelp.appspot.com/scroll.txt.html#zb)
+* [zs](http://vimhelp.appspot.com/scroll.txt.html#zs)
+* [ze](http://vimhelp.appspot.com/scroll.txt.html#ze)
index 1a58c4947229e49c3a09070c13411bc00551acf3..d8d3fec5e379494b162e82ace55a78766b9aa10e 100644 (file)
@@ -1,18 +1,83 @@
 'atom-text-editor.vim-mode':
 'atom-text-editor.vim-mode':
-  'escape': 'vim-mode:reset-command-mode'
-  'ctrl-c': 'vim-mode:reset-command-mode'
-  'ctrl-[': 'vim-mode:reset-command-mode'
+  'escape': 'vim-mode:reset-normal-mode'
+  'ctrl-c': 'vim-mode:reset-normal-mode'
+  'ctrl-[': 'vim-mode:reset-normal-mode'
 
 
-'atom-text-editor.vim-mode:not(.command-mode)':
-  'escape': 'vim-mode:activate-command-mode'
-  'ctrl-[': 'vim-mode:activate-command-mode'
+'atom-text-editor.vim-mode:not(.normal-mode)':
+  'escape': 'vim-mode:activate-normal-mode'
+  'ctrl-[': 'vim-mode:activate-normal-mode'
 
 
-'.platform-darwin atom-text-editor.vim-mode:not(.command-mode)':
-  'ctrl-c': 'vim-mode:activate-command-mode'
+'.platform-darwin atom-text-editor.vim-mode:not(.normal-mode)':
+  'ctrl-c': 'vim-mode:activate-normal-mode'
 
 'atom-text-editor.vim-mode.insert-mode':
   'ctrl-w': 'editor:delete-to-beginning-of-word'
   'ctrl-u': 'editor:delete-to-beginning-of-line'
 
 'atom-text-editor.vim-mode.insert-mode':
   'ctrl-w': 'editor:delete-to-beginning-of-word'
   'ctrl-u': 'editor:delete-to-beginning-of-line'
+  'ctrl-y': 'vim-mode:copy-from-line-above'
+  # disabled for compatibility with the common binding for going to the end of the line
+  # 'ctrl-e': 'vim-mode:copy-from-line-below'
+
+  'ctrl-r a': 'vim-mode:insert-mode-put'
+  'ctrl-r b': 'vim-mode:insert-mode-put'
+  'ctrl-r c': 'vim-mode:insert-mode-put'
+  'ctrl-r d': 'vim-mode:insert-mode-put'
+  'ctrl-r e': 'vim-mode:insert-mode-put'
+  'ctrl-r f': 'vim-mode:insert-mode-put'
+  'ctrl-r g': 'vim-mode:insert-mode-put'
+  'ctrl-r h': 'vim-mode:insert-mode-put'
+  'ctrl-r i': 'vim-mode:insert-mode-put'
+  'ctrl-r j': 'vim-mode:insert-mode-put'
+  'ctrl-r k': 'vim-mode:insert-mode-put'
+  'ctrl-r l': 'vim-mode:insert-mode-put'
+  'ctrl-r m': 'vim-mode:insert-mode-put'
+  'ctrl-r n': 'vim-mode:insert-mode-put'
+  'ctrl-r o': 'vim-mode:insert-mode-put'
+  'ctrl-r p': 'vim-mode:insert-mode-put'
+  'ctrl-r q': 'vim-mode:insert-mode-put'
+  'ctrl-r r': 'vim-mode:insert-mode-put'
+  'ctrl-r s': 'vim-mode:insert-mode-put'
+  'ctrl-r t': 'vim-mode:insert-mode-put'
+  'ctrl-r u': 'vim-mode:insert-mode-put'
+  'ctrl-r v': 'vim-mode:insert-mode-put'
+  'ctrl-r w': 'vim-mode:insert-mode-put'
+  'ctrl-r x': 'vim-mode:insert-mode-put'
+  'ctrl-r y': 'vim-mode:insert-mode-put'
+  'ctrl-r z': 'vim-mode:insert-mode-put'
+  'ctrl-r A': 'vim-mode:insert-mode-put'
+  'ctrl-r B': 'vim-mode:insert-mode-put'
+  'ctrl-r C': 'vim-mode:insert-mode-put'
+  'ctrl-r D': 'vim-mode:insert-mode-put'
+  'ctrl-r E': 'vim-mode:insert-mode-put'
+  'ctrl-r F': 'vim-mode:insert-mode-put'
+  'ctrl-r G': 'vim-mode:insert-mode-put'
+  'ctrl-r H': 'vim-mode:insert-mode-put'
+  'ctrl-r I': 'vim-mode:insert-mode-put'
+  'ctrl-r J': 'vim-mode:insert-mode-put'
+  'ctrl-r K': 'vim-mode:insert-mode-put'
+  'ctrl-r L': 'vim-mode:insert-mode-put'
+  'ctrl-r M': 'vim-mode:insert-mode-put'
+  'ctrl-r N': 'vim-mode:insert-mode-put'
+  'ctrl-r O': 'vim-mode:insert-mode-put'
+  'ctrl-r P': 'vim-mode:insert-mode-put'
+  'ctrl-r Q': 'vim-mode:insert-mode-put'
+  'ctrl-r R': 'vim-mode:insert-mode-put'
+  'ctrl-r S': 'vim-mode:insert-mode-put'
+  'ctrl-r T': 'vim-mode:insert-mode-put'
+  'ctrl-r U': 'vim-mode:insert-mode-put'
+  'ctrl-r V': 'vim-mode:insert-mode-put'
+  'ctrl-r W': 'vim-mode:insert-mode-put'
+  'ctrl-r X': 'vim-mode:insert-mode-put'
+  'ctrl-r Y': 'vim-mode:insert-mode-put'
+  'ctrl-r Z': 'vim-mode:insert-mode-put'
+  'ctrl-r *': 'vim-mode:insert-mode-put'
+  'ctrl-r +': 'vim-mode:insert-mode-put'
+  'ctrl-r %': 'vim-mode:insert-mode-put'
+  'ctrl-r _': 'vim-mode:insert-mode-put'
+  'ctrl-r "': 'vim-mode:insert-mode-put'
+  'ctrl-r escape': 'abort!'
+
+'atom-text-editor.vim-mode.replace-mode':
+  'backspace': 'vim-mode:replace-mode-backspace'
 
 'atom-text-editor.vim-mode:not(.insert-mode)':
   'h': 'vim-mode:move-left'
 
 'atom-text-editor.vim-mode:not(.insert-mode)':
   'h': 'vim-mode:move-left'
   'z z': 'vim-mode:scroll-cursor-to-middle-leave'
   'z -': 'vim-mode:scroll-cursor-to-bottom'
   'z b': 'vim-mode:scroll-cursor-to-bottom-leave'
   'z z': 'vim-mode:scroll-cursor-to-middle-leave'
   'z -': 'vim-mode:scroll-cursor-to-bottom'
   'z b': 'vim-mode:scroll-cursor-to-bottom-leave'
+  'z s': 'vim-mode:scroll-cursor-to-left'
+  'z e': 'vim-mode:scroll-cursor-to-right'
   'z M': 'editor:fold-all'
   'z R': 'editor:unfold-all'
   'z c': 'editor:fold-current-row'
   'z M': 'editor:fold-all'
   'z R': 'editor:unfold-all'
   'z c': 'editor:fold-current-row'
   '8': 'vim-mode:repeat-prefix'
   '9': 'vim-mode:repeat-prefix'
 
   '8': 'vim-mode:repeat-prefix'
   '9': 'vim-mode:repeat-prefix'
 
-'atom-text-editor.vim-mode.command-mode':
+'atom-text-editor.vim-mode.normal-mode':
   'i': 'vim-mode:activate-insert-mode'
   'i': 'vim-mode:activate-insert-mode'
+  'R': 'vim-mode:activate-replace-mode'
   'v': 'vim-mode:activate-characterwise-visual-mode'
   'V': 'vim-mode:activate-linewise-visual-mode'
   'ctrl-v': 'vim-mode:activate-blockwise-visual-mode'
   'v': 'vim-mode:activate-characterwise-visual-mode'
   'V': 'vim-mode:activate-linewise-visual-mode'
   'ctrl-v': 'vim-mode:activate-blockwise-visual-mode'
   '.': 'vim-mode:repeat'
 
   'ctrl-]': 'symbols-view:go-to-declaration'
   '.': 'vim-mode:repeat'
 
   'ctrl-]': 'symbols-view:go-to-declaration'
-  'ctrl-T': 'symbols-view:return-from-declaration'
+  'ctrl-t': 'symbols-view:return-from-declaration'
 
   'ctrl-a': 'vim-mode:increase'
   'ctrl-x': 'vim-mode:decrease'
 
   'ctrl-a': 'vim-mode:increase'
   'ctrl-x': 'vim-mode:decrease'
 
 'atom-text-editor.vim-mode.operator-pending-mode, atom-text-editor.vim-mode.visual-mode':
   'i w': 'vim-mode:select-inside-word'
 
 'atom-text-editor.vim-mode.operator-pending-mode, atom-text-editor.vim-mode.visual-mode':
   'i w': 'vim-mode:select-inside-word'
+  'i W': 'vim-mode:select-inside-whole-word'
   'i "': 'vim-mode:select-inside-double-quotes'
   'i \'': 'vim-mode:select-inside-single-quotes'
   'i `': 'vim-mode:select-inside-back-ticks'
   'i "': 'vim-mode:select-inside-double-quotes'
   'i \'': 'vim-mode:select-inside-single-quotes'
   'i `': 'vim-mode:select-inside-back-ticks'
   'i b': 'vim-mode:select-inside-parentheses'
   'i p': 'vim-mode:select-inside-paragraph'
   'a w': 'vim-mode:select-a-word'
   'i b': 'vim-mode:select-inside-parentheses'
   'i p': 'vim-mode:select-inside-paragraph'
   'a w': 'vim-mode:select-a-word'
+  'a W': 'vim-mode:select-a-whole-word'
   'a "': 'vim-mode:select-around-double-quotes'
   'a \'': 'vim-mode:select-around-single-quotes'
   'a `': 'vim-mode:select-around-back-ticks'
   'a "': 'vim-mode:select-around-double-quotes'
   'a \'': 'vim-mode:select-around-single-quotes'
   'a `': 'vim-mode:select-around-back-ticks'
   'a )': 'vim-mode:select-around-parentheses'
   'a b': 'vim-mode:select-around-parentheses'
   'a p': 'vim-mode:select-around-paragraph'
   'a )': 'vim-mode:select-around-parentheses'
   'a b': 'vim-mode:select-around-parentheses'
   'a p': 'vim-mode:select-around-paragraph'
-  'x': 'vim-mode:reset-command-mode'
+  'x': 'vim-mode:reset-normal-mode'
 
 'atom-text-editor.vim-mode.visual-mode':
   'x': 'vim-mode:delete'
 
 'atom-text-editor.vim-mode.visual-mode':
   'x': 'vim-mode:delete'
index 25da977ef748c6a960c946c4396193046e9e2d0a..acda507585d689e1a776a75632e6d8efa4e99e2e 100644 (file)
@@ -3,3 +3,4 @@ class GlobalVimState
   registers: {}
   searchHistory: []
   currentSearch: {}
   registers: {}
   searchHistory: []
   currentSearch: {}
+  currentFind: null
diff --git a/atom/packages/vim-mode/lib/insert-mode.coffee b/atom/packages/vim-mode/lib/insert-mode.coffee
new file mode 100644 (file)
index 0000000..d600e7e
--- /dev/null
@@ -0,0 +1,19 @@
+copyCharacterFromAbove = (editor, vimState) ->
+  editor.transact ->
+    for cursor in editor.getCursors()
+      {row, column} = cursor.getScreenPosition()
+      continue if row is 0
+      range = [[row-1, column], [row-1, column+1]]
+      cursor.selection.insertText(editor.getTextInBufferRange(editor.bufferRangeForScreenRange(range)))
+
+copyCharacterFromBelow = (editor, vimState) ->
+  editor.transact ->
+    for cursor in editor.getCursors()
+      {row, column} = cursor.getScreenPosition()
+      range = [[row+1, column], [row+1, column+1]]
+      cursor.selection.insertText(editor.getTextInBufferRange(editor.bufferRangeForScreenRange(range)))
+
+module.exports = {
+  copyCharacterFromAbove,
+  copyCharacterFromBelow
+}
index 58685d7087646782b43c2e1186cac38a6a26030c..2a577a8b03ff74672ffa3b93260ad733d36fff8d 100644 (file)
@@ -3,14 +3,27 @@
 {Point, Range} = require 'atom'
 
 class Find extends MotionWithInput
 {Point, Range} = require 'atom'
 
 class Find extends MotionWithInput
-  constructor: (@editor, @vimState) ->
+  operatesInclusively: true
+
+  constructor: (@editor, @vimState, opts={}) ->
     super(@editor, @vimState)
     super(@editor, @vimState)
-    @vimState.currentFind = this
-    @viewModel = new ViewModel(this, class: 'find', singleChar: true, hidden: true)
-    @backwards = false
-    @repeatReversed = false
     @offset = 0
     @offset = 0
-    @repeated = false
+
+    if not opts.repeated
+      @viewModel = new ViewModel(this, class: 'find', singleChar: true, hidden: true)
+      @backwards = false
+      @repeated = false
+      @vimState.globalVimState.currentFind = this
+
+    else
+      @repeated = true
+
+      orig = @vimState.globalVimState.currentFind
+      @backwards = orig.backwards
+      @complete = orig.complete
+      @input = orig.input
+
+      @reverse() if opts.reverse
 
   match: (cursor, count) ->
     currentPosition = cursor.getBufferPosition()
 
   match: (cursor, count) ->
     currentPosition = cursor.getBufferPosition()
@@ -38,17 +51,22 @@ class Find extends MotionWithInput
     if (match = @match(cursor, count))?
       cursor.setBufferPosition(match)
 
     if (match = @match(cursor, count))?
       cursor.setBufferPosition(match)
 
-  repeat: (opts={}) ->
-    opts.reverse = !!opts.reverse
-    @repeated = true
-    if opts.reverse isnt @repeatReversed
-      @reverse()
-      @repeatReversed = opts.reverse
-    this
-
 class Till extends Find
 class Till extends Find
-  constructor: (@editor, @vimState) ->
-    super(@editor, @vimState)
+  constructor: (@editor, @vimState, opts={}) ->
+    super(@editor, @vimState, opts)
     @offset = 1
 
     @offset = 1
 
+  match: ->
+    @selectAtLeastOne = false
+    retval = super
+    if retval? and not @backwards
+      @selectAtLeastOne = true
+    retval
+
+  moveSelectionInclusively: (selection, count, options) ->
+    super
+    if selection.isEmpty() and @selectAtLeastOne
+      selection.modifySelection ->
+        selection.cursor.moveRight()
+
 module.exports = {Find, Till}
 module.exports = {Find, Till}
index 47a3cc78df708ab5b9cf6fdf69f08a3a76028bb7..b5cd627225ca832f6ca25a6c182b09c868c27132 100644 (file)
@@ -11,7 +11,7 @@ class MotionError
     @name = 'Motion Error'
 
 class Motion
     @name = 'Motion Error'
 
 class Motion
-  operatesInclusively: true
+  operatesInclusively: false
   operatesLinewise: false
 
   constructor: (@editor, @vimState) ->
   operatesLinewise: false
 
   constructor: (@editor, @vimState) ->
@@ -20,7 +20,9 @@ class Motion
     value = for selection in @editor.getSelections()
       if @isLinewise()
         @moveSelectionLinewise(selection, count, options)
     value = for selection in @editor.getSelections()
       if @isLinewise()
         @moveSelectionLinewise(selection, count, options)
-      else if @isInclusive()
+      else if @vimState.mode is 'visual'
+        @moveSelectionVisual(selection, count, options)
+      else if @operatesInclusively
         @moveSelectionInclusively(selection, count, options)
       else
         @moveSelection(selection, count, options)
         @moveSelectionInclusively(selection, count, options)
       else
         @moveSelection(selection, count, options)
@@ -61,10 +63,27 @@ class Motion
       selection.setBufferRange([[newStartRow, 0], [newEndRow + 1, 0]])
 
   moveSelectionInclusively: (selection, count, options) ->
       selection.setBufferRange([[newStartRow, 0], [newEndRow + 1, 0]])
 
   moveSelectionInclusively: (selection, count, options) ->
+    return @moveSelectionVisual(selection, count, options) unless selection.isEmpty()
+
+    selection.modifySelection =>
+      @moveCursor(selection.cursor, count, options)
+      return if selection.isEmpty()
+
+      if selection.isReversed()
+        # for backward motion, add the original starting character of the motion
+        {start, end} = selection.getBufferRange()
+        selection.setBufferRange([start, [end.row, end.column + 1]])
+      else
+        # for forward motion, add the ending character of the motion
+        selection.cursor.moveRight()
+
+  moveSelectionVisual: (selection, count, options) ->
     selection.modifySelection =>
       range = selection.getBufferRange()
       [oldStart, oldEnd] = [range.start, range.end]
 
     selection.modifySelection =>
       range = selection.getBufferRange()
       [oldStart, oldEnd] = [range.start, range.end]
 
+      # in visual mode, atom cursor is after the last selected character,
+      # so here put cursor in the expected place for the following motion
       wasEmpty = selection.isEmpty()
       wasReversed = selection.isReversed()
       unless wasEmpty or wasReversed
       wasEmpty = selection.isEmpty()
       wasReversed = selection.isReversed()
       unless wasEmpty or wasReversed
@@ -72,6 +91,7 @@ class Motion
 
       @moveCursor(selection.cursor, count, options)
 
 
       @moveCursor(selection.cursor, count, options)
 
+      # put cursor back after the last character so it is also selected
       isEmpty = selection.isEmpty()
       isReversed = selection.isReversed()
       unless isEmpty or isReversed
       isEmpty = selection.isEmpty()
       isReversed = selection.isReversed()
       unless isEmpty or isReversed
@@ -80,23 +100,25 @@ class Motion
       range = selection.getBufferRange()
       [newStart, newEnd] = [range.start, range.end]
 
       range = selection.getBufferRange()
       [newStart, newEnd] = [range.start, range.end]
 
+      # if we reversed or emptied a normal selection
+      # we need to select again the last character deselected above the motion
       if (isReversed or isEmpty) and not (wasReversed or wasEmpty)
         selection.setBufferRange([newStart, [newEnd.row, oldStart.column + 1]])
       if (isReversed or isEmpty) and not (wasReversed or wasEmpty)
         selection.setBufferRange([newStart, [newEnd.row, oldStart.column + 1]])
+
+      # if we re-reversed a reversed non-empty selection,
+      # we need to keep the last character of the old selection selected
       if wasReversed and not wasEmpty and not isReversed
       if wasReversed and not wasEmpty and not isReversed
-        selection.setBufferRange([[newStart.row, oldEnd.column - 1], newEnd])
+        selection.setBufferRange([[oldEnd.row, oldEnd.column - 1], newEnd])
+
+      # keep a single-character selection non-reversed
+      range = selection.getBufferRange()
+      [newStart, newEnd] = [range.start, range.end]
+      if selection.isReversed() and newStart.row is newEnd.row and newStart.column + 1 is newEnd.column
+        selection.setBufferRange(range, reversed: false)
 
   moveSelection: (selection, count, options) ->
     selection.modifySelection => @moveCursor(selection.cursor, count, options)
 
 
   moveSelection: (selection, count, options) ->
     selection.modifySelection => @moveCursor(selection.cursor, count, options)
 
-  ensureCursorIsWithinLine: (cursor) ->
-    return if @vimState.mode is 'visual' or not cursor.selection.isEmpty()
-    {goalColumn} = cursor
-    {row, column} = cursor.getBufferPosition()
-    lastColumn = cursor.getCurrentLineBufferRange().end.column
-    if column >= lastColumn - 1
-      cursor.setBufferPosition([row, Math.max(lastColumn - 1, 0)])
-    cursor.goalColumn ?= goalColumn
-
   isComplete: -> true
 
   isRecordable: -> false
   isComplete: -> true
 
   isRecordable: -> false
@@ -107,21 +129,41 @@ class Motion
     else
       @operatesLinewise
 
     else
       @operatesLinewise
 
-  isInclusive: ->
-    @vimState.mode is 'visual' or @operatesInclusively
-
 class CurrentSelection extends Motion
   constructor: (@editor, @vimState) ->
     super(@editor, @vimState)
 class CurrentSelection extends Motion
   constructor: (@editor, @vimState) ->
     super(@editor, @vimState)
-    @selection = @editor.getSelectedBufferRanges()
+    @lastSelectionRange = @editor.getSelectedBufferRange()
+    @wasLinewise = @isLinewise()
 
   execute: (count=1) ->
     _.times(count, -> true)
 
   select: (count=1) ->
 
   execute: (count=1) ->
     _.times(count, -> true)
 
   select: (count=1) ->
-    @editor.setSelectedBufferRanges(@selection)
+    # in visual mode, the current selections are already there
+    # if we're not in visual mode, we are repeating some operation and need to re-do the selections
+    unless @vimState.mode is 'visual'
+      if @wasLinewise
+        @selectLines()
+      else
+        @selectCharacters()
+
     _.times(count, -> true)
 
     _.times(count, -> true)
 
+  selectLines: ->
+    lastSelectionExtent = @lastSelectionRange.getExtent()
+    for selection in @editor.getSelections()
+      cursor = selection.cursor.getBufferPosition()
+      selection.setBufferRange [[cursor.row, 0], [cursor.row + lastSelectionExtent.row, 0]]
+    return
+
+  selectCharacters: ->
+    lastSelectionExtent = @lastSelectionRange.getExtent()
+    for selection in @editor.getSelections()
+      {start} = selection.getBufferRange()
+      newEnd = start.traverse(lastSelectionExtent)
+      selection.setBufferRange([start, newEnd])
+    return
+
 # Public: Generic class for motions that require extra input
 class MotionWithInput extends Motion
   constructor: (@editor, @vimState) ->
 # Public: Generic class for motions that require extra input
 class MotionWithInput extends Motion
   constructor: (@editor, @vimState) ->
@@ -139,16 +181,11 @@ class MotionWithInput extends Motion
     @complete = true
 
 class MoveLeft extends Motion
     @complete = true
 
 class MoveLeft extends Motion
-  operatesInclusively: false
-
   moveCursor: (cursor, count=1) ->
   moveCursor: (cursor, count=1) ->
-    _.times count, =>
+    _.times count, ->
       cursor.moveLeft() if not cursor.isAtBeginningOfLine() or settings.wrapLeftRightMotion()
       cursor.moveLeft() if not cursor.isAtBeginningOfLine() or settings.wrapLeftRightMotion()
-      @ensureCursorIsWithinLine(cursor)
 
 class MoveRight extends Motion
 
 class MoveRight extends Motion
-  operatesInclusively: false
-
   moveCursor: (cursor, count=1) ->
     _.times count, =>
       wrapToNextLine = settings.wrapLeftRightMotion()
   moveCursor: (cursor, count=1) ->
     _.times count, =>
       wrapToNextLine = settings.wrapLeftRightMotion()
@@ -159,16 +196,14 @@ class MoveRight extends Motion
 
       cursor.moveRight() unless cursor.isAtEndOfLine()
       cursor.moveRight() if wrapToNextLine and cursor.isAtEndOfLine()
 
       cursor.moveRight() unless cursor.isAtEndOfLine()
       cursor.moveRight() if wrapToNextLine and cursor.isAtEndOfLine()
-      @ensureCursorIsWithinLine(cursor)
 
 class MoveUp extends Motion
   operatesLinewise: true
 
   moveCursor: (cursor, count=1) ->
 
 class MoveUp extends Motion
   operatesLinewise: true
 
   moveCursor: (cursor, count=1) ->
-    _.times count, =>
+    _.times count, ->
       unless cursor.getScreenRow() is 0
         cursor.moveUp()
       unless cursor.getScreenRow() is 0
         cursor.moveUp()
-        @ensureCursorIsWithinLine(cursor)
 
 class MoveDown extends Motion
   operatesLinewise: true
 
 class MoveDown extends Motion
   operatesLinewise: true
@@ -177,18 +212,13 @@ class MoveDown extends Motion
     _.times count, =>
       unless cursor.getScreenRow() is @editor.getLastScreenRow()
         cursor.moveDown()
     _.times count, =>
       unless cursor.getScreenRow() is @editor.getLastScreenRow()
         cursor.moveDown()
-        @ensureCursorIsWithinLine(cursor)
 
 class MoveToPreviousWord extends Motion
 
 class MoveToPreviousWord extends Motion
-  operatesInclusively: false
-
   moveCursor: (cursor, count=1) ->
     _.times count, ->
       cursor.moveToBeginningOfWord()
 
 class MoveToPreviousWholeWord extends Motion
   moveCursor: (cursor, count=1) ->
     _.times count, ->
       cursor.moveToBeginningOfWord()
 
 class MoveToPreviousWholeWord extends Motion
-  operatesInclusively: false
-
   moveCursor: (cursor, count=1) ->
     _.times count, =>
       cursor.moveToBeginningOfWord()
   moveCursor: (cursor, count=1) ->
     _.times count, =>
       cursor.moveToBeginningOfWord()
@@ -205,7 +235,6 @@ class MoveToPreviousWholeWord extends Motion
 
 class MoveToNextWord extends Motion
   wordRegex: null
 
 class MoveToNextWord extends Motion
   wordRegex: null
-  operatesInclusively: false
 
   moveCursor: (cursor, count=1, options) ->
     _.times count, =>
 
   moveCursor: (cursor, count=1, options) ->
     _.times count, =>
@@ -236,6 +265,7 @@ class MoveToNextWholeWord extends MoveToNextWord
   wordRegex: WholeWordOrEmptyLineRegex
 
 class MoveToEndOfWord extends Motion
   wordRegex: WholeWordOrEmptyLineRegex
 
 class MoveToEndOfWord extends Motion
+  operatesInclusively: true
   wordRegex: null
 
   moveCursor: (cursor, count=1) ->
   wordRegex: null
 
   moveCursor: (cursor, count=1) ->
@@ -260,8 +290,6 @@ class MoveToEndOfWholeWord extends MoveToEndOfWord
   wordRegex: WholeWordRegex
 
 class MoveToNextParagraph extends Motion
   wordRegex: WholeWordRegex
 
 class MoveToNextParagraph extends Motion
-  operatesInclusively: false
-
   moveCursor: (cursor, count=1) ->
     _.times count, ->
       cursor.moveToBeginningOfNextParagraph()
   moveCursor: (cursor, count=1) ->
     _.times count, ->
       cursor.moveToBeginningOfNextParagraph()
@@ -284,8 +312,6 @@ class MoveToAbsoluteLine extends MoveToLine
     cursor.moveToEndOfLine() if cursor.getBufferColumn() is 0
 
 class MoveToRelativeLine extends MoveToLine
     cursor.moveToEndOfLine() if cursor.getBufferColumn() is 0
 
 class MoveToRelativeLine extends MoveToLine
-  operatesLinewise: true
-
   moveCursor: (cursor, count=1) ->
     {row, column} = cursor.getBufferPosition()
     cursor.setBufferPosition([row + (count - 1), 0])
   moveCursor: (cursor, count=1) ->
     {row, column} = cursor.getBufferPosition()
     cursor.setBufferPosition([row + (count - 1), 0])
@@ -300,15 +326,11 @@ class MoveToScreenLine extends MoveToLine
     cursor.setScreenPosition([@getDestinationRow(count), 0])
 
 class MoveToBeginningOfLine extends Motion
     cursor.setScreenPosition([@getDestinationRow(count), 0])
 
 class MoveToBeginningOfLine extends Motion
-  operatesInclusively: false
-
   moveCursor: (cursor, count=1) ->
     _.times count, ->
       cursor.moveToBeginningOfLine()
 
 class MoveToFirstCharacterOfLine extends Motion
   moveCursor: (cursor, count=1) ->
     _.times count, ->
       cursor.moveToBeginningOfLine()
 
 class MoveToFirstCharacterOfLine extends Motion
-  operatesInclusively: false
-
   moveCursor: (cursor, count=1) ->
     _.times count, ->
       cursor.moveToBeginningOfLine()
   moveCursor: (cursor, count=1) ->
     _.times count, ->
       cursor.moveToBeginningOfLine()
@@ -316,22 +338,18 @@ class MoveToFirstCharacterOfLine extends Motion
 
 class MoveToFirstCharacterOfLineAndDown extends Motion
   operatesLinewise: true
 
 class MoveToFirstCharacterOfLineAndDown extends Motion
   operatesLinewise: true
-  operatesInclusively: true
 
 
-  moveCursor: (cursor, count=0) ->
+  moveCursor: (cursor, count=1) ->
     _.times count-1, ->
       cursor.moveDown()
     cursor.moveToBeginningOfLine()
     cursor.moveToFirstCharacterOfLine()
 
 class MoveToLastCharacterOfLine extends Motion
     _.times count-1, ->
       cursor.moveDown()
     cursor.moveToBeginningOfLine()
     cursor.moveToFirstCharacterOfLine()
 
 class MoveToLastCharacterOfLine extends Motion
-  operatesInclusively: false
-
   moveCursor: (cursor, count=1) ->
   moveCursor: (cursor, count=1) ->
-    _.times count, =>
+    _.times count, ->
       cursor.moveToEndOfLine()
       cursor.goalColumn = Infinity
       cursor.moveToEndOfLine()
       cursor.goalColumn = Infinity
-      @ensureCursorIsWithinLine(cursor)
 
 class MoveToLastNonblankCharacterOfLineAndDown extends Motion
   operatesInclusively: true
 
 class MoveToLastNonblankCharacterOfLineAndDown extends Motion
   operatesInclusively: true
@@ -354,7 +372,6 @@ class MoveToLastNonblankCharacterOfLineAndDown extends Motion
 
 class MoveToFirstCharacterOfLineUp extends Motion
   operatesLinewise: true
 
 class MoveToFirstCharacterOfLineUp extends Motion
   operatesLinewise: true
-  operatesInclusively: true
 
   moveCursor: (cursor, count=1) ->
     _.times count, ->
 
   moveCursor: (cursor, count=1) ->
     _.times count, ->
@@ -398,7 +415,7 @@ class MoveToBottomOfScreen extends MoveToScreenLine
     lastScreenRow - offset
 
 class MoveToMiddleOfScreen extends MoveToScreenLine
     lastScreenRow - offset
 
 class MoveToMiddleOfScreen extends MoveToScreenLine
-  getDestinationRow: (count) ->
+  getDestinationRow: ->
     firstScreenRow = @editorElement.getFirstVisibleScreenRow()
     lastScreenRow = @editorElement.getLastVisibleScreenRow()
     height = lastScreenRow - firstScreenRow
     firstScreenRow = @editorElement.getFirstVisibleScreenRow()
     lastScreenRow = @editorElement.getLastVisibleScreenRow()
     height = lastScreenRow - firstScreenRow
@@ -428,7 +445,7 @@ class ScrollKeepingCursor extends MoveToLine
     {row, column} = @editor.getCursorScreenPosition()
     @currentFirstScreenRow - @previousFirstScreenRow + row
 
     {row, column} = @editor.getCursorScreenPosition()
     @currentFirstScreenRow - @previousFirstScreenRow + row
 
-  scrollScreen: (count = 1) ->
+  scrollScreen: (count=1) ->
     @previousFirstScreenRow = @editorElement.getFirstVisibleScreenRow()
     destination = @scrollDestination(count)
     @editor.setScrollTop(destination)
     @previousFirstScreenRow = @editorElement.getFirstVisibleScreenRow()
     destination = @scrollDestination(count)
     @editor.setScrollTop(destination)
index 0187620abf09c640a9e1f4620170d2c35889edc0..3603e1ed300fc5164b5bc8d169bad9a33a769b67 100644 (file)
@@ -4,8 +4,6 @@
 
 module.exports =
 class MoveToMark extends MotionWithInput
 
 module.exports =
 class MoveToMark extends MotionWithInput
-  operatesInclusively: false
-
   constructor: (@editor, @vimState, @linewise=true) ->
     super(@editor, @vimState)
     @operatesLinewise = @linewise
   constructor: (@editor, @vimState, @linewise=true) ->
     super(@editor, @vimState)
     @operatesLinewise = @linewise
index 11761ad8182f5911192bf80478fed034ee081ac3..fa65e1955c3c6cd13632ff2db675c8a37f1ef44d 100644 (file)
@@ -6,8 +6,6 @@ SearchViewModel = require '../view-models/search-view-model'
 settings = require '../settings'
 
 class SearchBase extends MotionWithInput
 settings = require '../settings'
 
 class SearchBase extends MotionWithInput
-  operatesInclusively: false
-
   constructor: (@editor, @vimState, options = {}) ->
     super(@editor, @vimState)
     @reverse = @initiallyReversed = false
   constructor: (@editor, @vimState, options = {}) ->
     super(@editor, @vimState)
     @reverse = @initiallyReversed = false
@@ -27,6 +25,8 @@ class SearchBase extends MotionWithInput
       atom.beep()
 
   scan: (cursor) ->
       atom.beep()
 
   scan: (cursor) ->
+    return [] if @input.characters is ""
+
     currentPosition = cursor.getBufferPosition()
 
     [rangesBefore, rangesAfter] = [[], []]
     currentPosition = cursor.getBufferPosition()
 
     [rangesBefore, rangesAfter] = [[], []]
@@ -75,6 +75,16 @@ class Search extends SearchBase
   constructor: (@editor, @vimState) ->
     super(@editor, @vimState)
     @viewModel = new SearchViewModel(this)
   constructor: (@editor, @vimState) ->
     super(@editor, @vimState)
     @viewModel = new SearchViewModel(this)
+    @updateViewModel()
+
+  reversed: =>
+    @initiallyReversed = @reverse = true
+    @updateCurrentSearch()
+    @updateViewModel()
+    this
+
+  updateViewModel: ->
+    @viewModel.update(@initiallyReversed)
 
 class SearchCurrentWord extends SearchBase
   @keywordRegex: null
 
 class SearchCurrentWord extends SearchBase
   @keywordRegex: null
index dd9925610508b9aeea44668b04bbae267b5fbcc6..9547941686f968c07c79acef9ae114a61276969a 100644 (file)
@@ -12,11 +12,8 @@ class Operator
   vimState: null
   motion: null
   complete: null
   vimState: null
   motion: null
   complete: null
-  selectOptions: null
 
 
-  # selectOptions - The options object to pass through to the motion when
-  #                 selecting.
-  constructor: (@editor, @vimState, {@selectOptions}={}) ->
+  constructor: (@editor, @vimState) ->
     @complete = false
 
   # Public: Determines when the command can be executed.
     @complete = false
 
   # Public: Determines when the command can be executed.
@@ -76,14 +73,9 @@ class OperatorWithInput extends Operator
 #
 class Delete extends Operator
   register: null
 #
 class Delete extends Operator
   register: null
-  allowEOL: null
 
 
-  # allowEOL - Determines whether the cursor should be allowed to rest on the
-  #            end of line character or not.
-  constructor: (@editor, @vimState, {@allowEOL, @selectOptions}={}) ->
+  constructor: (@editor, @vimState) ->
     @complete = false
     @complete = false
-    @selectOptions ?= {}
-    @selectOptions.requireEOL ?= true
     @register = settings.defaultRegister()
 
   # Public: Deletes the text selected by the given motion.
     @register = settings.defaultRegister()
 
   # Public: Deletes the text selected by the given motion.
@@ -92,27 +84,28 @@ class Delete extends Operator
   #
   # Returns nothing.
   execute: (count) ->
   #
   # Returns nothing.
   execute: (count) ->
-    if _.contains(@motion.select(count, @selectOptions), true)
+    if _.contains(@motion.select(count), true)
       @setTextRegister(@register, @editor.getSelectedText())
       @setTextRegister(@register, @editor.getSelectedText())
-      for selection in @editor.getSelections()
-        selection.deleteSelectedText()
+      @editor.transact =>
+        for selection in @editor.getSelections()
+          selection.deleteSelectedText()
       for cursor in @editor.getCursors()
         if @motion.isLinewise?()
           cursor.skipLeadingWhitespace()
         else
           cursor.moveLeft() if cursor.isAtEndOfLine() and not cursor.isAtBeginningOfLine()
 
       for cursor in @editor.getCursors()
         if @motion.isLinewise?()
           cursor.skipLeadingWhitespace()
         else
           cursor.moveLeft() if cursor.isAtEndOfLine() and not cursor.isAtBeginningOfLine()
 
-    @vimState.activateCommandMode()
+    @vimState.activateNormalMode()
 
 #
 # It toggles the case of everything selected by the following motion
 #
 class ToggleCase extends Operator
 
 #
 # It toggles the case of everything selected by the following motion
 #
 class ToggleCase extends Operator
-  constructor: (@editor, @vimState, {@complete, @selectOptions}={}) ->
+  constructor: (@editor, @vimState, {@complete}={}) ->
 
 
-  execute: (count=1) ->
+  execute: (count) ->
     if @motion?
     if @motion?
-      if _.contains(@motion.select(count, @selectOptions), true)
+      if _.contains(@motion.select(count), true)
         @editor.replaceSelectedText {}, (text) ->
           text.split('').map((char) ->
             lower = char.toLowerCase()
         @editor.replaceSelectedText {}, (text) ->
           text.split('').map((char) ->
             lower = char.toLowerCase()
@@ -126,7 +119,7 @@ class ToggleCase extends Operator
         for cursor in @editor.getCursors()
           point = cursor.getBufferPosition()
           lineLength = @editor.lineTextForBufferRow(point.row).length
         for cursor in @editor.getCursors()
           point = cursor.getBufferPosition()
           lineLength = @editor.lineTextForBufferRow(point.row).length
-          cursorCount = Math.min(count, lineLength - point.column)
+          cursorCount = Math.min(count ? 1, lineLength - point.column)
 
           _.times cursorCount, =>
             point = cursor.getBufferPosition()
 
           _.times cursorCount, =>
             point = cursor.getBufferPosition()
@@ -140,35 +133,35 @@ class ToggleCase extends Operator
 
             cursor.moveRight() unless point.column >= lineLength - 1
 
 
             cursor.moveRight() unless point.column >= lineLength - 1
 
-    @vimState.activateCommandMode()
+    @vimState.activateNormalMode()
 
 #
 # In visual mode or after `g` with a motion, it makes the selection uppercase
 #
 class UpperCase extends Operator
 
 #
 # In visual mode or after `g` with a motion, it makes the selection uppercase
 #
 class UpperCase extends Operator
-  constructor: (@editor, @vimState, {@selectOptions}={}) ->
+  constructor: (@editor, @vimState) ->
     @complete = false
 
     @complete = false
 
-  execute: (count=1) ->
-    if _.contains(@motion.select(count, @selectOptions), true)
+  execute: (count) ->
+    if _.contains(@motion.select(count), true)
       @editor.replaceSelectedText {}, (text) ->
         text.toUpperCase()
 
       @editor.replaceSelectedText {}, (text) ->
         text.toUpperCase()
 
-    @vimState.activateCommandMode()
+    @vimState.activateNormalMode()
 
 #
 # In visual mode or after `g` with a motion, it makes the selection lowercase
 #
 class LowerCase extends Operator
 
 #
 # In visual mode or after `g` with a motion, it makes the selection lowercase
 #
 class LowerCase extends Operator
-  constructor: (@editor, @vimState, {@selectOptions}={}) ->
+  constructor: (@editor, @vimState) ->
     @complete = false
 
     @complete = false
 
-  execute: (count=1) ->
-    if _.contains(@motion.select(count, @selectOptions), true)
+  execute: (count) ->
+    if _.contains(@motion.select(count), true)
       @editor.replaceSelectedText {}, (text) ->
         text.toLowerCase()
 
       @editor.replaceSelectedText {}, (text) ->
         text.toLowerCase()
 
-    @vimState.activateCommandMode()
+    @vimState.activateNormalMode()
 
 #
 # It copies everything selected by the following motion.
 
 #
 # It copies everything selected by the following motion.
@@ -176,7 +169,7 @@ class LowerCase extends Operator
 class Yank extends Operator
   register: null
 
 class Yank extends Operator
   register: null
 
-  constructor: (@editor, @vimState, {@allowEOL, @selectOptions}={}) ->
+  constructor: (@editor, @vimState) ->
     @register = settings.defaultRegister()
 
   # Public: Copies the text selected by the given motion.
     @register = settings.defaultRegister()
 
   # Public: Copies the text selected by the given motion.
@@ -185,13 +178,20 @@ class Yank extends Operator
   #
   # Returns nothing.
   execute: (count) ->
   #
   # Returns nothing.
   execute: (count) ->
+    oldTop = @editor.getScrollTop()
+    oldLeft = @editor.getScrollLeft()
+    oldLastCursorPosition = @editor.getCursorBufferPosition()
+
     originalPositions = @editor.getCursorBufferPositions()
     if _.contains(@motion.select(count), true)
       text = @editor.getSelectedText()
       startPositions = _.pluck(@editor.getSelectedBufferRanges(), "start")
       newPositions = for originalPosition, i in originalPositions
     originalPositions = @editor.getCursorBufferPositions()
     if _.contains(@motion.select(count), true)
       text = @editor.getSelectedText()
       startPositions = _.pluck(@editor.getSelectedBufferRanges(), "start")
       newPositions = for originalPosition, i in originalPositions
-        if startPositions[i] and (@vimState.mode is 'visual' or not @motion.isLinewise?())
-          Point.min(startPositions[i], originalPositions[i])
+        if startPositions[i]
+          position = Point.min(startPositions[i], originalPositions[i])
+          if @vimState.mode isnt 'visual' and @motion.isLinewise?()
+            position = new Point(position.row, originalPositions[i].column)
+          position
         else
           originalPosition
     else
         else
           originalPosition
     else
@@ -201,13 +201,18 @@ class Yank extends Operator
     @setTextRegister(@register, text)
 
     @editor.setSelectedBufferRanges(newPositions.map (p) -> new Range(p, p))
     @setTextRegister(@register, text)
 
     @editor.setSelectedBufferRanges(newPositions.map (p) -> new Range(p, p))
-    @vimState.activateCommandMode()
+
+    if oldLastCursorPosition.isEqual(@editor.getCursorBufferPosition())
+      @editor.setScrollLeft(oldLeft)
+      @editor.setScrollTop(oldTop)
+
+    @vimState.activateNormalMode()
 
 #
 # It combines the current line with the following line.
 #
 class Join extends Operator
 
 #
 # It combines the current line with the following line.
 #
 class Join extends Operator
-  constructor: (@editor, @vimState, {@selectOptions}={}) -> @complete = true
+  constructor: (@editor, @vimState) -> @complete = true
 
   # Public: Combines the current with the following lines
   #
 
   # Public: Combines the current with the following lines
   #
@@ -218,13 +223,13 @@ class Join extends Operator
     @editor.transact =>
       _.times count, =>
         @editor.joinLines()
     @editor.transact =>
       _.times count, =>
         @editor.joinLines()
-    @vimState.activateCommandMode()
+    @vimState.activateNormalMode()
 
 #
 # Repeat the last operation
 #
 class Repeat extends Operator
 
 #
 # Repeat the last operation
 #
 class Repeat extends Operator
-  constructor: (@editor, @vimState, {@selectOptions}={}) -> @complete = true
+  constructor: (@editor, @vimState) -> @complete = true
 
   isRecordable: -> false
 
 
   isRecordable: -> false
 
@@ -237,7 +242,7 @@ class Repeat extends Operator
 # It creates a mark at the current cursor position
 #
 class Mark extends OperatorWithInput
 # It creates a mark at the current cursor position
 #
 class Mark extends OperatorWithInput
-  constructor: (@editor, @vimState, {@selectOptions}={}) ->
+  constructor: (@editor, @vimState) ->
     super(@editor, @vimState)
     @viewModel = new ViewModel(this, class: 'mark', singleChar: true, hidden: true)
 
     super(@editor, @vimState)
     @viewModel = new ViewModel(this, class: 'mark', singleChar: true, hidden: true)
 
@@ -247,7 +252,7 @@ class Mark extends OperatorWithInput
   # Returns nothing.
   execute: ->
     @vimState.setMark(@input.characters, @editor.getCursorBufferPosition())
   # Returns nothing.
   execute: ->
     @vimState.setMark(@input.characters, @editor.getCursorBufferPosition())
-    @vimState.activateCommandMode()
+    @vimState.activateNormalMode()
 
 module.exports = {
   Operator, OperatorWithInput, OperatorError, Delete, ToggleCase,
 
 module.exports = {
   Operator, OperatorWithInput, OperatorError, Delete, ToggleCase,
index 0ad37e0296d984729d61ca60abe219b362f194bf..ba3c155efcff0436cc97ee4a4291b5d30f7e0231 100644 (file)
@@ -1,17 +1,24 @@
+_ = require 'underscore-plus'
 {Operator} = require './general-operators'
 
 class AdjustIndentation extends Operator
 {Operator} = require './general-operators'
 
 class AdjustIndentation extends Operator
-  execute: (count=1) ->
+  execute: (count) ->
     mode = @vimState.mode
     @motion.select(count)
     mode = @vimState.mode
     @motion.select(count)
-    {start} = @editor.getSelectedBufferRange()
+    originalRanges = @editor.getSelectedBufferRanges()
 
 
-    @indent()
+    if mode is 'visual'
+      @editor.transact =>
+        _.times(count ? 1, => @indent())
+    else
+      @indent()
 
 
-    if mode isnt 'visual'
-      @editor.setCursorBufferPosition([start.row, 0])
-      @editor.moveToFirstCharacterOfLine()
-      @vimState.activateCommandMode()
+    @editor.clearSelections()
+    @editor.getLastCursor().setBufferPosition([originalRanges.shift().start.row, 0])
+    for range in originalRanges
+      @editor.addCursorAtBufferPosition([range.start.row, 0])
+    @editor.moveToFirstCharacterOfLine()
+    @vimState.activateNormalMode()
 
 class Indent extends AdjustIndentation
   indent: ->
 
 class Indent extends AdjustIndentation
   indent: ->
index 3821045c0adbae7cb5cea9880e5bdea719d1939f..0fee121ab3fc2ce66b545a08de3ff95bde773ae5 100644 (file)
@@ -1,3 +1,4 @@
+Motions = require '../motions/index'
 {Operator, Delete} = require './general-operators'
 _ = require 'underscore-plus'
 settings = require '../settings'
 {Operator, Delete} = require './general-operators'
 _ = require 'underscore-plus'
 settings = require '../settings'
@@ -18,7 +19,7 @@ class Insert extends Operator
   execute: ->
     if @typingCompleted
       return unless @typedText? and @typedText.length > 0
   execute: ->
     if @typingCompleted
       return unless @typedText? and @typedText.length > 0
-      @editor.insertText(@typedText, normalizeLineEndings: true)
+      @editor.insertText(@typedText, normalizeLineEndings: true, autoIndent: true)
       for cursor in @editor.getCursors()
         cursor.moveLeft() unless cursor.isAtBeginningOfLine()
     else
       for cursor in @editor.getCursors()
         cursor.moveLeft() unless cursor.isAtBeginningOfLine()
     else
@@ -28,6 +29,26 @@ class Insert extends Operator
 
   inputOperator: -> true
 
 
   inputOperator: -> true
 
+class ReplaceMode extends Insert
+
+  execute: ->
+    if @typingCompleted
+      return unless @typedText? and @typedText.length > 0
+      @editor.transact =>
+        @editor.insertText(@typedText, normalizeLineEndings: true)
+        toDelete = @typedText.length - @countChars('\n', @typedText)
+        for selection in @editor.getSelections()
+          count = toDelete
+          selection.delete() while count-- and not selection.cursor.isAtEndOfLine()
+        for cursor in @editor.getCursors()
+          cursor.moveLeft() unless cursor.isAtBeginningOfLine()
+    else
+      @vimState.activateReplaceMode()
+      @typingCompleted = true
+
+  countChars: (char, string) ->
+    string.split(char).length - 1
+
 class InsertAfter extends Insert
   execute: ->
     @editor.moveRight() unless @editor.getLastCursor().isAtEndOfLine()
 class InsertAfter extends Insert
   execute: ->
     @editor.moveRight() unless @editor.getLastCursor().isAtEndOfLine()
@@ -45,7 +66,7 @@ class InsertAtBeginningOfLine extends Insert
     super
 
 class InsertAboveWithNewline extends Insert
     super
 
 class InsertAboveWithNewline extends Insert
-  execute: (count=1) ->
+  execute: ->
     @vimState.setInsertionCheckpoint() unless @typingCompleted
     @editor.insertNewlineAbove()
     @editor.getLastCursor().skipLeadingWhitespace()
     @vimState.setInsertionCheckpoint() unless @typingCompleted
     @editor.insertNewlineAbove()
     @editor.getLastCursor().skipLeadingWhitespace()
@@ -60,7 +81,7 @@ class InsertAboveWithNewline extends Insert
     @typingCompleted = true
 
 class InsertBelowWithNewline extends Insert
     @typingCompleted = true
 
 class InsertBelowWithNewline extends Insert
-  execute: (count=1) ->
+  execute: ->
     @vimState.setInsertionCheckpoint() unless @typingCompleted
     @editor.insertNewlineBelow()
     @editor.getLastCursor().skipLeadingWhitespace()
     @vimState.setInsertionCheckpoint() unless @typingCompleted
     @editor.insertNewlineBelow()
     @editor.getLastCursor().skipLeadingWhitespace()
@@ -81,7 +102,7 @@ class Change extends Insert
   standalone: false
   register: null
 
   standalone: false
   register: null
 
-  constructor: (@editor, @vimState, {@selectOptions}={}) ->
+  constructor: (@editor, @vimState) ->
     @register = settings.defaultRegister()
 
   # Public: Changes the text selected by the given motion.
     @register = settings.defaultRegister()
 
   # Public: Changes the text selected by the given motion.
@@ -90,67 +111,29 @@ class Change extends Insert
   #
   # Returns nothing.
   execute: (count) ->
   #
   # Returns nothing.
   execute: (count) ->
-    # If we've typed, we're being repeated. If we're being repeated,
-    # undo transactions are already handled.
-    @vimState.setInsertionCheckpoint() unless @typingCompleted
-
     if _.contains(@motion.select(count, excludeWhitespace: true), true)
     if _.contains(@motion.select(count, excludeWhitespace: true), true)
+      # If we've typed, we're being repeated. If we're being repeated,
+      # undo transactions are already handled.
+      @vimState.setInsertionCheckpoint() unless @typingCompleted
+
       @setTextRegister(@register, @editor.getSelectedText())
       @setTextRegister(@register, @editor.getSelectedText())
-      if @motion.isLinewise?()
-        @editor.insertNewline()
-        @editor.moveLeft()
+      if @motion.isLinewise?() and not @typingCompleted
+        for selection in @editor.getSelections()
+          if selection.getBufferRange().end.row is 0
+            selection.deleteSelectedText()
+          else
+            selection.insertText("\n", autoIndent: true)
+          selection.cursor.moveLeft()
       else
         for selection in @editor.getSelections()
           selection.deleteSelectedText()
 
       else
         for selection in @editor.getSelections()
           selection.deleteSelectedText()
 
-    return super if @typingCompleted
-
-    @vimState.activateInsertMode()
-    @typingCompleted = true
-
-class Substitute extends Insert
-  register: null
-
-  constructor: (@editor, @vimState, {@selectOptions}={}) ->
-    @register = settings.defaultRegister()
+      return super if @typingCompleted
 
 
-  execute: (count=1) ->
-    @vimState.setInsertionCheckpoint() unless @typingCompleted
-    _.times count, =>
-      @editor.selectRight()
-    @setTextRegister(@register, @editor.getSelectedText())
-    @editor.delete()
-
-    if @typingCompleted
-      @typedText = @typedText.trimLeft()
-      return super
-
-    @vimState.activateInsertMode()
-    @typingCompleted = true
-
-class SubstituteLine extends Insert
-  register: null
-
-  constructor: (@editor, @vimState, {@selectOptions}={}) ->
-    @register = settings.defaultRegister()
-
-  execute: (count=1) ->
-    @vimState.setInsertionCheckpoint() unless @typingCompleted
-    @editor.moveToBeginningOfLine()
-    _.times count, =>
-      @editor.selectToEndOfLine()
-      @editor.selectRight()
-    @setTextRegister(@register, @editor.getSelectedText())
-    @editor.delete()
-    @editor.insertNewlineAbove()
-    @editor.getLastCursor().skipLeadingWhitespace()
-
-    if @typingCompleted
-      @typedText = @typedText.trimLeft()
-      return super
-
-    @vimState.activateInsertMode()
-    @typingCompleted = true
+      @vimState.activateInsertMode()
+      @typingCompleted = true
+    else
+      @vimState.activateNormalMode()
 
 # Takes a transaction and turns it into a string of what was typed.
 # This class is an implementation detail of Insert
 
 # Takes a transaction and turns it into a string of what was typed.
 # This class is an implementation detail of Insert
@@ -225,7 +208,6 @@ module.exports = {
   InsertAtBeginningOfLine,
   InsertAboveWithNewline,
   InsertBelowWithNewline,
   InsertAtBeginningOfLine,
   InsertAboveWithNewline,
   InsertBelowWithNewline,
-  Change,
-  Substitute,
-  SubstituteLine
+  ReplaceMode,
+  Change
 }
 }
index 63151f15467b1c6bf056f55eaf2f3a4d88f83932..611d6faad21eaf658fb28c4387c4076f27171313 100644 (file)
@@ -9,7 +9,7 @@ module.exports =
 class Put extends Operator
   register: null
 
 class Put extends Operator
   register: null
 
-  constructor: (@editor, @vimState, {@location, @selectOptions}={}) ->
+  constructor: (@editor, @vimState, {@location}={}) ->
     @location ?= 'after'
     @complete = true
     @register = settings.defaultRegister()
     @location ?= 'after'
     @complete = true
     @register = settings.defaultRegister()
@@ -58,9 +58,9 @@ class Put extends Operator
       @editor.setCursorScreenPosition(originalPosition)
       @editor.moveToFirstCharacterOfLine()
 
       @editor.setCursorScreenPosition(originalPosition)
       @editor.moveToFirstCharacterOfLine()
 
-    @vimState.activateCommandMode()
     if type isnt 'linewise'
       @editor.moveLeft()
     if type isnt 'linewise'
       @editor.moveLeft()
+    @vimState.activateNormalMode()
 
   # Private: Helper to determine if the editor is currently on the last row.
   #
 
   # Private: Helper to determine if the editor is currently on the last row.
   #
index 52157d0896cc5b1b2b38421aeb72b1af50c6bfaf..9cf44b3e7391116bb8ad45a5d95cd5c40d2b2a8e 100644 (file)
@@ -5,7 +5,7 @@ _ = require 'underscore-plus'
 
 module.exports =
 class Replace extends OperatorWithInput
 
 module.exports =
 class Replace extends OperatorWithInput
-  constructor: (@editor, @vimState, {@selectOptions}={}) ->
+  constructor: (@editor, @vimState) ->
     super(@editor, @vimState)
     @viewModel = new ViewModel(this, class: 'replace', hidden: true, singleChar: true, defaultText: '\n')
 
     super(@editor, @vimState)
     @viewModel = new ViewModel(this, class: 'replace', hidden: true, singleChar: true, defaultText: '\n')
 
@@ -16,7 +16,7 @@ class Replace extends OperatorWithInput
       if @vimState.mode is "visual"
         @vimState.resetVisualMode()
       else
       if @vimState.mode is "visual"
         @vimState.resetVisualMode()
       else
-        @vimState.activateCommandMode()
+        @vimState.activateNormalMode()
 
       return
 
 
       return
 
@@ -47,4 +47,4 @@ class Replace extends OperatorWithInput
             @editor.moveDown()
           @editor.moveToFirstCharacterOfLine()
 
             @editor.moveDown()
           @editor.moveToFirstCharacterOfLine()
 
-    @vimState.activateCommandMode()
+    @vimState.activateNormalMode()
index b29bc9227ac30bcb3930d1ba1caf20800709c260..c9109632d29fb95d7c2f6ac053cc399189b1e40e 100644 (file)
@@ -27,7 +27,7 @@ class Prefix
     @composedObject.select?(@count)
 
   isLinewise: ->
     @composedObject.select?(@count)
 
   isLinewise: ->
-    @composedObject.isLinewise()
+    @composedObject.isLinewise?()
 
 #
 # Used to track the number of times either a motion or operator should
 
 #
 # Used to track the number of times either a motion or operator should
index 1bc1258c7cf1b37e4b042b79113a9687c543f197..275f0f9f2b907d9bdbc5ac2f8cbb1d7545aefc58 100644 (file)
@@ -84,5 +84,27 @@ class ScrollCursorToBottom extends ScrollCursor
   moveToFirstNonBlank: ->
     @editor.moveToFirstCharacterOfLine()
 
   moveToFirstNonBlank: ->
     @editor.moveToFirstCharacterOfLine()
 
+class ScrollHorizontal
+  isComplete: -> true
+  isRecordable: -> false
+  constructor: (@editorElement) ->
+    @editor = @editorElement.getModel()
+    cursorPos = @editor.getCursorScreenPosition()
+    @pixel = @editorElement.pixelPositionForScreenPosition(cursorPos).left
+    @cursor = @editor.getLastCursor()
+
+  putCursorOnScreen: ->
+    @editor.scrollToCursorPosition({center: false})
+
+class ScrollCursorToLeft extends ScrollHorizontal
+  execute: ->
+    @editor.setScrollLeft(@pixel)
+    @putCursorOnScreen()
+
+class ScrollCursorToRight extends ScrollHorizontal
+  execute: ->
+    @editor.setScrollRight(@pixel)
+    @putCursorOnScreen()
+
 module.exports = {ScrollDown, ScrollUp, ScrollCursorToTop, ScrollCursorToMiddle,
 module.exports = {ScrollDown, ScrollUp, ScrollCursorToTop, ScrollCursorToMiddle,
-  ScrollCursorToBottom}
+  ScrollCursorToBottom, ScrollCursorToLeft, ScrollCursorToRight}
index 82e35e1d361e2d8fd94463766fee18b3ad4b1f88..080e4bf28f30eda24da15c11fc7ce95f5a6f0867 100644 (file)
@@ -1,9 +1,7 @@
-{Disposable, CompositeDisposable} = require 'event-kit'
-
 ContentsByMode =
   'insert': ["status-bar-vim-mode-insert", "Insert"]
   'insert.replace': ["status-bar-vim-mode-insert", "Replace"]
 ContentsByMode =
   'insert': ["status-bar-vim-mode-insert", "Insert"]
   'insert.replace': ["status-bar-vim-mode-insert", "Replace"]
-  'command': ["status-bar-vim-mode-command", "Command"]
+  'normal': ["status-bar-vim-mode-normal", "Normal"]
   'visual': ["status-bar-vim-mode-visual", "Visual"]
   'visual.characterwise': ["status-bar-vim-mode-visual", "Visual"]
   'visual.linewise': ["status-bar-vim-mode-visual", "Visual Line"]
   'visual': ["status-bar-vim-mode-visual", "Visual"]
   'visual.characterwise': ["status-bar-vim-mode-visual", "Visual"]
   'visual.linewise': ["status-bar-vim-mode-visual", "Visual Line"]
@@ -27,6 +25,11 @@ class StatusBarManager
       [klass, text] = newContents
       @element.className = klass
       @element.textContent = text
       [klass, text] = newContents
       @element.className = klass
       @element.textContent = text
+    else
+      @hide()
+
+  hide: ->
+    @element.className = 'hidden'
 
   # Private
 
 
   # Private
 
index 6d9741b93038ae16987ea7191d301fcdb8c509f8..bf386057f583ab8832ed77db33e1daeee7ab412c 100644 (file)
@@ -1,5 +1,7 @@
 {Range} = require 'atom'
 AllWhitespace = /^\s$/
 {Range} = require 'atom'
 AllWhitespace = /^\s$/
+WholeWordRegex = /\S+/
+{mergeRanges} = require './utils'
 
 class TextObject
   constructor: (@editor, @state) ->
 
 class TextObject
   constructor: (@editor, @state) ->
@@ -7,11 +9,21 @@ class TextObject
   isComplete: -> true
   isRecordable: -> false
 
   isComplete: -> true
   isRecordable: -> false
 
+  execute: -> @select.apply(this, arguments)
+
 class SelectInsideWord extends TextObject
   select: ->
 class SelectInsideWord extends TextObject
   select: ->
-    @editor.selectWordsContainingCursors()
+    for selection in @editor.getSelections()
+      selection.expandOverWord()
     [true]
 
     [true]
 
+class SelectInsideWholeWord extends TextObject
+  select: ->
+    for selection in @editor.getSelections()
+      range = selection.cursor.getCurrentWordBufferRange({wordRegex: WholeWordRegex})
+      selection.setBufferRange(mergeRanges(selection.getBufferRange(), range))
+      true
+
 # SelectInsideQuotes and the next class defined (SelectInsideBrackets) are
 # almost-but-not-quite-repeated code. They are different because of the depth
 # checks in the bracket matcher.
 # SelectInsideQuotes and the next class defined (SelectInsideBrackets) are
 # almost-but-not-quite-repeated code. They are different because of the depth
 # checks in the bracket matcher.
@@ -76,7 +88,7 @@ class SelectInsideQuotes extends TextObject
         ++ start.column # skip the opening quote
         end = @findClosingQuote(start)
         if end?
         ++ start.column # skip the opening quote
         end = @findClosingQuote(start)
         if end?
-          selection.setBufferRange([start, end])
+          selection.setBufferRange(mergeRanges(selection.getBufferRange(), [start, end]))
       not selection.isEmpty()
 
 # SelectInsideBrackets and the previous class defined (SelectInsideQuotes) are
       not selection.isEmpty()
 
 # SelectInsideBrackets and the previous class defined (SelectInsideQuotes) are
@@ -126,13 +138,13 @@ class SelectInsideBrackets extends TextObject
         ++ start.column # skip the opening quote
         end = @findClosingBracket(start)
         if end?
         ++ start.column # skip the opening quote
         end = @findClosingBracket(start)
         if end?
-          selection.setBufferRange([start, end])
+          selection.setBufferRange(mergeRanges(selection.getBufferRange(), [start, end]))
       not selection.isEmpty()
 
 class SelectAWord extends TextObject
   select: ->
     for selection in @editor.getSelections()
       not selection.isEmpty()
 
 class SelectAWord extends TextObject
   select: ->
     for selection in @editor.getSelections()
-      selection.selectWord()
+      selection.expandOverWord()
       loop
         endPoint = selection.getBufferRange().end
         char = @editor.getTextInRange(Range.fromPointWithDelta(endPoint, 0, 1))
       loop
         endPoint = selection.getBufferRange().end
         char = @editor.getTextInRange(Range.fromPointWithDelta(endPoint, 0, 1))
@@ -140,25 +152,56 @@ class SelectAWord extends TextObject
         selection.selectRight()
       true
 
         selection.selectRight()
       true
 
-class SelectInsideParagraph extends TextObject
-  constructor: (@editor, @inclusive) ->
+class SelectAWholeWord extends TextObject
   select: ->
     for selection in @editor.getSelections()
   select: ->
     for selection in @editor.getSelections()
-      range = selection.cursor.getCurrentParagraphBufferRange()
-      if range?
-        selection.setBufferRange(range)
-        selection.selectToBeginningOfNextParagraph()
+      range = selection.cursor.getCurrentWordBufferRange({wordRegex: WholeWordRegex})
+      selection.setBufferRange(mergeRanges(selection.getBufferRange(), range))
+      loop
+        endPoint = selection.getBufferRange().end
+        char = @editor.getTextInRange(Range.fromPointWithDelta(endPoint, 0, 1))
+        break unless AllWhitespace.test(char)
+        selection.selectRight()
       true
 
       true
 
-class SelectAParagraph extends TextObject
-  constructor: (@editor, @inclusive) ->
+class Paragraph extends TextObject
+
   select: ->
     for selection in @editor.getSelections()
   select: ->
     for selection in @editor.getSelections()
-      range = selection.cursor.getCurrentParagraphBufferRange()
-      if range?
-        selection.setBufferRange(range)
-        selection.selectToBeginningOfNextParagraph()
-        selection.selectDown()
-      true
-
-module.exports = {TextObject, SelectInsideWord, SelectInsideQuotes, SelectInsideBrackets, SelectAWord, SelectInsideParagraph, SelectAParagraph}
+      @selectParagraph(selection)
+
+  # Return a range delimted by the start or the end of a paragraph
+  paragraphDelimitedRange: (startPoint) ->
+    inParagraph = @isParagraphLine(@editor.lineTextForBufferRow(startPoint.row))
+    upperRow = @searchLines(startPoint.row, -1, inParagraph)
+    lowerRow = @searchLines(startPoint.row, @editor.getLineCount(), inParagraph)
+    new Range([upperRow + 1, 0], [lowerRow, 0])
+
+  searchLines: (startRow, rowLimit, startedInParagraph) ->
+    for currentRow in [startRow..rowLimit]
+      line = @editor.lineTextForBufferRow(currentRow)
+      if startedInParagraph isnt @isParagraphLine(line)
+        return currentRow
+    rowLimit
+
+  isParagraphLine: (line) -> (/\S/.test(line))
+
+class SelectInsideParagraph extends Paragraph
+  selectParagraph: (selection) ->
+    oldRange = selection.getBufferRange()
+    startPoint = selection.cursor.getBufferPosition()
+    newRange = @paragraphDelimitedRange(startPoint)
+    selection.setBufferRange(mergeRanges(oldRange, newRange))
+    true
+
+class SelectAParagraph extends Paragraph
+  selectParagraph: (selection) ->
+    oldRange = selection.getBufferRange()
+    startPoint = selection.cursor.getBufferPosition()
+    newRange = @paragraphDelimitedRange(startPoint)
+    nextRange = @paragraphDelimitedRange(newRange.end)
+    selection.setBufferRange(mergeRanges(oldRange, [newRange.start, nextRange.end]))
+    true
+
+module.exports = {TextObject, SelectInsideWord, SelectInsideWholeWord, SelectInsideQuotes,
+  SelectInsideBrackets, SelectAWord, SelectAWholeWord, SelectInsideParagraph, SelectAParagraph}
index 362b65d20a1aba9fc78a1d5f627c91ca8b465395..5a26310a43689d87ddcc11c3a7f2efae46362727 100644 (file)
@@ -1,3 +1,5 @@
+{Range} = require 'atom'
+
 module.exports =
   # Public: Determines if a string should be considered linewise or character
   #
 module.exports =
   # Public: Determines if a string should be considered linewise or character
   #
@@ -12,3 +14,14 @@ module.exports =
       'linewise'
     else
       'character'
       'linewise'
     else
       'character'
+
+  # Public: return a union of two ranges, or simply the newRange if the oldRange is empty.
+  #
+  # Returns a Range
+  mergeRanges: (oldRange, newRange) ->
+    oldRange = Range.fromObject oldRange
+    newRange = Range.fromObject newRange
+    if oldRange.isEmpty()
+      newRange
+    else
+      oldRange.union(newRange)
index 87872109f9470514a3922544497846a1e778223c..8e63fd2875c17b08d9d1904047ff371d64786262 100644 (file)
@@ -40,3 +40,11 @@ class SearchViewModel extends ViewModel
         atom.beep()
     super(view)
     @vimState.pushSearchHistory(@view.value)
         atom.beep()
     super(view)
     @vimState.pushSearchHistory(@view.value)
+
+  update: (reverse) ->
+    if reverse
+      @view.classList.add('reverse-search-input')
+      @view.classList.remove('search-input')
+    else
+      @view.classList.add('search-input')
+      @view.classList.remove('reverse-search-input')
index 9cc63e163b835cf7b289d697144db92679fbe9b1..b9da16956d6036ac774cbab695eab9d4f10807d4 100644 (file)
@@ -1,10 +1,10 @@
-VimCommandModeInputElement = require './vim-command-mode-input-element'
+VimNormalModeInputElement = require './vim-normal-mode-input-element'
 
 class ViewModel
   constructor: (@operation, opts={}) ->
     {@editor, @vimState} = @operation
 
 class ViewModel
   constructor: (@operation, opts={}) ->
     {@editor, @vimState} = @operation
-    @view = new VimCommandModeInputElement().initialize(this, opts)
-    @editor.commandModeInputView = @view
+    @view = new VimNormalModeInputElement().initialize(this, atom.views.getView(@editor), opts)
+    @editor.normalModeInputView = @view
     @vimState.onDidFailToCompose => @view.remove()
 
   confirm: (view) ->
     @vimState.onDidFailToCompose => @view.remove()
 
   confirm: (view) ->
@@ -13,6 +13,7 @@ class ViewModel
   cancel: (view) ->
     if @vimState.isOperatorPending()
       @vimState.pushOperations(new Input(''))
   cancel: (view) ->
     if @vimState.isOperatorPending()
       @vimState.pushOperations(new Input(''))
+    delete @editor.normalModeInputView
 
 class Input
   constructor: (@characters) ->
 
 class Input
   constructor: (@characters) ->
similarity index 58%
rename from atom/packages/vim-mode/lib/view-models/vim-command-mode-input-element.coffee
rename to atom/packages/vim-mode/lib/view-models/vim-normal-mode-input-element.coffee
index 4fd0c524f6bd68b90c91c0775a49d2eaa6a3ad49..23717531611e4c7ac1f2b29ee23d5df93f42307b 100644 (file)
@@ -1,29 +1,25 @@
-class VimCommandModeInputElement extends HTMLDivElement
+class VimNormalModeInputElement extends HTMLDivElement
   createdCallback: ->
   createdCallback: ->
-    @className = "command-mode-input"
+    @className = "normal-mode-input"
 
 
-    @editorContainer = document.createElement("div")
-    @editorContainer.className = "editor-container"
-
-    @appendChild(@editorContainer)
-
-  initialize: (@viewModel, opts = {}) ->
+  initialize: (@viewModel, @mainEditorElement, opts = {}) ->
     if opts.class?
     if opts.class?
-      @editorContainer.classList.add(opts.class)
-
-    if opts.hidden
-      @editorContainer.style.height = "0px"
+      @classList.add(opts.class)
 
     @editorElement = document.createElement "atom-text-editor"
     @editorElement.classList.add('editor')
     @editorElement.getModel().setMini(true)
     @editorElement.setAttribute('mini', '')
 
     @editorElement = document.createElement "atom-text-editor"
     @editorElement.classList.add('editor')
     @editorElement.getModel().setMini(true)
     @editorElement.setAttribute('mini', '')
-    @editorContainer.appendChild(@editorElement)
+    @appendChild(@editorElement)
 
     @singleChar = opts.singleChar
     @defaultText = opts.defaultText ? ''
 
 
     @singleChar = opts.singleChar
     @defaultText = opts.defaultText ? ''
 
-    @panel = atom.workspace.addBottomPanel(item: this, priority: 100)
+    if opts.hidden
+      @classList.add('vim-hidden-normal-mode-input')
+      @mainEditorElement.parentNode.appendChild(this)
+    else
+      @panel = atom.workspace.addBottomPanel(item: this, priority: 100)
 
     @focus()
     @handleEvents()
 
     @focus()
     @handleEvents()
@@ -32,8 +28,11 @@ class VimCommandModeInputElement extends HTMLDivElement
 
   handleEvents: ->
     if @singleChar?
 
   handleEvents: ->
     if @singleChar?
+      compositing = false
       @editorElement.getModel().getBuffer().onDidChange (e) =>
       @editorElement.getModel().getBuffer().onDidChange (e) =>
-        @confirm() if e.newText
+        @confirm() if e.newText and not compositing
+      @editorElement.addEventListener 'compositionstart', -> compositing = true
+      @editorElement.addEventListener 'compositionend', -> compositing = false
     else
       atom.commands.add(@editorElement, 'editor:newline', @confirm.bind(this))
 
     else
       atom.commands.add(@editorElement, 'editor:newline', @confirm.bind(this))
 
@@ -55,10 +54,13 @@ class VimCommandModeInputElement extends HTMLDivElement
 
   removePanel: ->
     atom.workspace.getActivePane().activate()
 
   removePanel: ->
     atom.workspace.getActivePane().activate()
-    @panel.destroy()
+    if @panel?
+      @panel.destroy()
+    else
+      this.remove()
 
 module.exports =
 
 module.exports =
-document.registerElement("vim-command-mode-input"
+document.registerElement("vim-normal-mode-input"
   extends: "div",
   extends: "div",
-  prototype: VimCommandModeInputElement.prototype
+  prototype: VimNormalModeInputElement.prototype
 )
 )
index 660fba0cc8e13901e0a650dc0991d5e32ffdd724..b8ef936f2bba75cb3c819db138c6743e8558cc58 100644 (file)
@@ -16,7 +16,7 @@ module.exports =
     @vimStatesByEditor = new WeakMap
 
     @disposables.add atom.workspace.observeTextEditors (editor) =>
     @vimStatesByEditor = new WeakMap
 
     @disposables.add atom.workspace.observeTextEditors (editor) =>
-      return if editor.isMini() or @vimStatesByEditor.get(editor)
+      return if editor.isMini() or @getEditorState(editor)
 
       vimState = new VimState(
         atom.views.getView(editor),
 
       vimState = new VimState(
         atom.views.getView(editor),
@@ -28,6 +28,8 @@ module.exports =
       @vimStatesByEditor.set(editor, vimState)
       vimState.onDidDestroy => @vimStates.delete(vimState)
 
       @vimStatesByEditor.set(editor, vimState)
       vimState.onDidDestroy => @vimStates.delete(vimState)
 
+    @disposables.add atom.workspace.onDidChangeActivePaneItem @updateToPaneItem.bind(this)
+
     @disposables.add new Disposable =>
       @vimStates.forEach (vimState) -> vimState.destroy()
 
     @disposables.add new Disposable =>
       @vimStates.forEach (vimState) -> vimState.destroy()
 
@@ -46,6 +48,13 @@ module.exports =
     @disposables.add new Disposable =>
       @statusBarManager.detach()
 
     @disposables.add new Disposable =>
       @statusBarManager.detach()
 
+  updateToPaneItem: (item) ->
+    vimState = @getEditorState(item) if item?
+    if vimState?
+      vimState.updateStatusBar()
+    else
+      @statusBarManager.hide()
+
   provideVimMode: ->
     getGlobalState: @getGlobalState.bind(this)
     getEditorState: @getEditorState.bind(this)
   provideVimMode: ->
     getGlobalState: @getGlobalState.bind(this)
     getEditorState: @getEditorState.bind(this)
index a45551c3b4a13f317d93fdca5d4f8fa3e9a3ffb1..db59ee5156c32416385eda26140fb7f35f95db58 100644 (file)
@@ -1,3 +1,4 @@
+Grim  = require 'grim'
 _ = require 'underscore-plus'
 {Point, Range} = require 'atom'
 {Emitter, Disposable, CompositeDisposable} = require 'event-kit'
 _ = require 'underscore-plus'
 {Point, Range} = require 'atom'
 {Emitter, Disposable, CompositeDisposable} = require 'event-kit'
@@ -6,6 +7,7 @@ settings = require './settings'
 Operators = require './operators/index'
 Prefixes = require './prefixes'
 Motions = require './motions/index'
 Operators = require './operators/index'
 Prefixes = require './prefixes'
 Motions = require './motions/index'
+InsertMode = require './insert-mode'
 
 TextObjects = require './text-objects'
 Utils = require './utils'
 
 TextObjects = require './text-objects'
 Utils = require './utils'
@@ -18,6 +20,7 @@ class VimState
   mode: null
   submode: null
   destroyed: false
   mode: null
   submode: null
   destroyed: false
+  replaceModeListener: null
 
   constructor: (@editorElement, @statusBarManager, @globalVimState) ->
     @emitter = new Emitter
 
   constructor: (@editorElement, @statusBarManager, @globalVimState) ->
     @emitter = new Emitter
@@ -28,52 +31,56 @@ class VimState
     @marks = {}
     @subscriptions.add @editor.onDidDestroy => @destroy()
 
     @marks = {}
     @subscriptions.add @editor.onDidDestroy => @destroy()
 
-    @subscriptions.add @editor.onDidChangeSelectionRange _.debounce(=>
-      return unless @editor?
-      if @editor.getSelections().every((selection) -> selection.isEmpty())
-        @activateCommandMode() if @mode is 'visual'
-      else
-        @activateVisualMode('characterwise') if @mode is 'command'
-    , 100)
+    @editorElement.addEventListener 'mouseup', @checkSelections
+    if atom.commands.onDidDispatch?
+      @subscriptions.add atom.commands.onDidDispatch (e) =>
+        if e.target is @editorElement
+          @checkSelections()
 
     @editorElement.classList.add("vim-mode")
 
     @editorElement.classList.add("vim-mode")
-    @setupCommandMode()
+    @setupNormalMode()
     if settings.startInInsertMode()
       @activateInsertMode()
     else
     if settings.startInInsertMode()
       @activateInsertMode()
     else
-      @activateCommandMode()
+      @activateNormalMode()
 
   destroy: ->
     unless @destroyed
       @destroyed = true
 
   destroy: ->
     unless @destroyed
       @destroyed = true
-      @emitter.emit 'did-destroy'
       @subscriptions.dispose()
       if @editor.isAlive()
         @deactivateInsertMode()
         @editorElement.component?.setInputEnabled(true)
         @editorElement.classList.remove("vim-mode")
       @subscriptions.dispose()
       if @editor.isAlive()
         @deactivateInsertMode()
         @editorElement.component?.setInputEnabled(true)
         @editorElement.classList.remove("vim-mode")
-        @editorElement.classList.remove("command-mode")
+        @editorElement.classList.remove("normal-mode")
+      @editorElement.removeEventListener 'mouseup', @checkSelections
       @editor = null
       @editorElement = null
       @editor = null
       @editorElement = null
+      @emitter.emit 'did-destroy'
 
   # Private: Creates the plugin's bindings
   #
   # Returns nothing.
 
   # Private: Creates the plugin's bindings
   #
   # Returns nothing.
-  setupCommandMode: ->
+  setupNormalMode: ->
     @registerCommands
     @registerCommands
-      'activate-command-mode': => @activateCommandMode()
+      'activate-normal-mode': => @activateNormalMode()
       'activate-linewise-visual-mode': => @activateVisualMode('linewise')
       'activate-characterwise-visual-mode': => @activateVisualMode('characterwise')
       'activate-blockwise-visual-mode': => @activateVisualMode('blockwise')
       'activate-linewise-visual-mode': => @activateVisualMode('linewise')
       'activate-characterwise-visual-mode': => @activateVisualMode('characterwise')
       'activate-blockwise-visual-mode': => @activateVisualMode('blockwise')
-      'reset-command-mode': => @resetCommandMode()
+      'reset-normal-mode': => @resetNormalMode()
       'repeat-prefix': (e) => @repeatPrefix(e)
       'reverse-selections': (e) => @reverseSelections(e)
       'undo': (e) => @undo(e)
       'repeat-prefix': (e) => @repeatPrefix(e)
       'reverse-selections': (e) => @reverseSelections(e)
       'undo': (e) => @undo(e)
+      'replace-mode-backspace': => @replaceModeUndo()
+      'insert-mode-put': (e) => @insertRegister(@registerName(e))
+      'copy-from-line-above': => InsertMode.copyCharacterFromAbove(@editor, this)
+      'copy-from-line-below': => InsertMode.copyCharacterFromBelow(@editor, this)
 
     @registerOperationCommands
       'activate-insert-mode': => new Operators.Insert(@editor, this)
 
     @registerOperationCommands
       'activate-insert-mode': => new Operators.Insert(@editor, this)
-      'substitute': => new Operators.Substitute(@editor, this)
-      'substitute-line': => new Operators.SubstituteLine(@editor, this)
+      'activate-replace-mode': => new Operators.ReplaceMode(@editor, this)
+      'substitute': => [new Operators.Change(@editor, this), new Motions.MoveRight(@editor, this)]
+      'substitute-line': => [new Operators.Change(@editor, this), new Motions.MoveToRelativeLine(@editor, this)]
       'insert-after': => new Operators.InsertAfter(@editor, this)
       'insert-after-end-of-line': => new Operators.InsertAfterEndOfLine(@editor, this)
       'insert-at-beginning-of-line': => new Operators.InsertAtBeginningOfLine(@editor, this)
       'insert-after': => new Operators.InsertAfter(@editor, this)
       'insert-after-end-of-line': => new Operators.InsertAfterEndOfLine(@editor, this)
       'insert-at-beginning-of-line': => new Operators.InsertAtBeginningOfLine(@editor, this)
@@ -135,7 +142,10 @@ class VimState
       'scroll-full-screen-up': => new Motions.ScrollFullUpKeepCursor(@editorElement, this)
       'scroll-half-screen-down': => new Motions.ScrollHalfDownKeepCursor(@editorElement, this)
       'scroll-full-screen-down': => new Motions.ScrollFullDownKeepCursor(@editorElement, this)
       'scroll-full-screen-up': => new Motions.ScrollFullUpKeepCursor(@editorElement, this)
       'scroll-half-screen-down': => new Motions.ScrollHalfDownKeepCursor(@editorElement, this)
       'scroll-full-screen-down': => new Motions.ScrollFullDownKeepCursor(@editorElement, this)
+      'scroll-cursor-to-left': => new Scroll.ScrollCursorToLeft(@editorElement)
+      'scroll-cursor-to-right': => new Scroll.ScrollCursorToRight(@editorElement)
       'select-inside-word': => new TextObjects.SelectInsideWord(@editor)
       'select-inside-word': => new TextObjects.SelectInsideWord(@editor)
+      'select-inside-whole-word': => new TextObjects.SelectInsideWholeWord(@editor)
       'select-inside-double-quotes': => new TextObjects.SelectInsideQuotes(@editor, '"', false)
       'select-inside-single-quotes': => new TextObjects.SelectInsideQuotes(@editor, '\'', false)
       'select-inside-back-ticks': => new TextObjects.SelectInsideQuotes(@editor, '`', false)
       'select-inside-double-quotes': => new TextObjects.SelectInsideQuotes(@editor, '"', false)
       'select-inside-single-quotes': => new TextObjects.SelectInsideQuotes(@editor, '\'', false)
       'select-inside-back-ticks': => new TextObjects.SelectInsideQuotes(@editor, '`', false)
@@ -146,6 +156,7 @@ class VimState
       'select-inside-parentheses': => new TextObjects.SelectInsideBrackets(@editor, '(', ')', false)
       'select-inside-paragraph': => new TextObjects.SelectInsideParagraph(@editor, false)
       'select-a-word': => new TextObjects.SelectAWord(@editor)
       'select-inside-parentheses': => new TextObjects.SelectInsideBrackets(@editor, '(', ')', false)
       'select-inside-paragraph': => new TextObjects.SelectInsideParagraph(@editor, false)
       'select-a-word': => new TextObjects.SelectAWord(@editor)
+      'select-a-whole-word': => new TextObjects.SelectAWholeWord(@editor)
       'select-around-double-quotes': => new TextObjects.SelectInsideQuotes(@editor, '"', true)
       'select-around-single-quotes': => new TextObjects.SelectInsideQuotes(@editor, '\'', true)
       'select-around-back-ticks': => new TextObjects.SelectInsideQuotes(@editor, '`', true)
       'select-around-double-quotes': => new TextObjects.SelectInsideQuotes(@editor, '"', true)
       'select-around-single-quotes': => new TextObjects.SelectInsideQuotes(@editor, '\'', true)
       'select-around-back-ticks': => new TextObjects.SelectInsideQuotes(@editor, '`', true)
@@ -165,8 +176,8 @@ class VimState
       'find-backwards': (e) => new Motions.Find(@editor, this).reverse()
       'till': (e) => new Motions.Till(@editor, this)
       'till-backwards': (e) => new Motions.Till(@editor, this).reverse()
       'find-backwards': (e) => new Motions.Find(@editor, this).reverse()
       'till': (e) => new Motions.Till(@editor, this)
       'till-backwards': (e) => new Motions.Till(@editor, this).reverse()
-      'repeat-find': (e) => @currentFind.repeat() if @currentFind?
-      'repeat-find-reverse': (e) => @currentFind.repeat(reverse: true) if @currentFind?
+      'repeat-find': (e) => new @globalVimState.currentFind.constructor(@editor, this, repeated: true) if @globalVimState.currentFind
+      'repeat-find-reverse': (e) => new @globalVimState.currentFind.constructor(@editor, this, repeated: true, reverse: true) if @globalVimState.currentFind
       'replace': (e) => new Operators.Replace(@editor, this)
       'search': (e) => new Motions.Search(@editor, this)
       'reverse-search': (e) => (new Motions.Search(@editor, this)).reversed()
       'replace': (e) => new Operators.Replace(@editor, this)
       'search': (e) => new Motions.Search(@editor, this)
       'reverse-search': (e) => (new Motions.Search(@editor, this)).reversed()
@@ -210,7 +221,7 @@ class VimState
       # if we have started an operation that responds to canComposeWith check if it can compose
       # with the operation we're going to push onto the stack
       if (topOp = @topOperation())? and topOp.canComposeWith? and not topOp.canComposeWith(operation)
       # if we have started an operation that responds to canComposeWith check if it can compose
       # with the operation we're going to push onto the stack
       if (topOp = @topOperation())? and topOp.canComposeWith? and not topOp.canComposeWith(operation)
-        @resetCommandMode()
+        @resetNormalMode()
         @emitter.emit('failed-to-compose')
         break
 
         @emitter.emit('failed-to-compose')
         break
 
@@ -237,7 +248,7 @@ class VimState
 
   undo: ->
     @editor.undo()
 
   undo: ->
     @editor.undo()
-    @activateCommandMode()
+    @activateNormalMode()
 
   # Private: Processes the command if the last operation is complete.
   #
 
   # Private: Processes the command if the last operation is complete.
   #
@@ -247,7 +258,7 @@ class VimState
       return
 
     unless @topOperation().isComplete()
       return
 
     unless @topOperation().isComplete()
-      if @mode is 'command' and @topOperation() instanceof Operators.Operator
+      if @mode is 'normal' and @topOperation() instanceof Operators.Operator
         @activateOperatorPendingMode()
       return
 
         @activateOperatorPendingMode()
       return
 
@@ -258,7 +269,7 @@ class VimState
         @processOpStack()
       catch e
         if (e instanceof Operators.OperatorError) or (e instanceof Motions.MotionError)
         @processOpStack()
       catch e
         if (e instanceof Operators.OperatorError) or (e instanceof Motions.MotionError)
-          @resetCommandMode()
+          @resetNormalMode()
         else
           throw e
     else
         else
           throw e
     else
@@ -278,6 +289,8 @@ class VimState
   # Returns the value of the given register or undefined if it hasn't
   # been set.
   getRegister: (name) ->
   # Returns the value of the given register or undefined if it hasn't
   # been set.
   getRegister: (name) ->
+    if name is '"'
+      name = settings.defaultRegister()
     if name in ['*', '+']
       text = atom.clipboard.read()
       type = Utils.copyType(text)
     if name in ['*', '+']
       text = atom.clipboard.read()
       type = Utils.copyType(text)
@@ -312,6 +325,8 @@ class VimState
   #
   # Returns nothing.
   setRegister: (name, value) ->
   #
   # Returns nothing.
   setRegister: (name, value) ->
+    if name is '"'
+      name = settings.defaultRegister()
     if name in ['*', '+']
       atom.clipboard.write(value.text)
     else if name is '_'
     if name in ['*', '+']
       atom.clipboard.write(value.text)
     else if name is '_'
@@ -368,43 +383,73 @@ class VimState
   # Mode Switching
   ##############################################################################
 
   # Mode Switching
   ##############################################################################
 
-  # Private: Used to enable command mode.
+  # Private: Used to enable normal mode.
   #
   # Returns nothing.
   #
   # Returns nothing.
-  activateCommandMode: ->
+  activateNormalMode: ->
     @deactivateInsertMode()
     @deactivateVisualMode()
 
     @deactivateInsertMode()
     @deactivateVisualMode()
 
-    @mode = 'command'
+    @mode = 'normal'
     @submode = null
 
     @submode = null
 
-    @changeModeClass('command-mode')
+    @changeModeClass('normal-mode')
 
     @clearOpStack()
     selection.clear(autoscroll: false) for selection in @editor.getSelections()
 
     @clearOpStack()
     selection.clear(autoscroll: false) for selection in @editor.getSelections()
-    for cursor in @editor.getCursors()
-      if cursor.isAtEndOfLine() and not cursor.isAtBeginningOfLine()
-        cursor.moveLeft()
+    @ensureCursorsWithinLine()
 
     @updateStatusBar()
 
 
     @updateStatusBar()
 
+  # TODO: remove this method and bump the `vim-mode` service version number.
+  activateCommandMode: ->
+    Grim.deprecate("Use ::activateNormalMode instead")
+    @activateNormalMode()
+
   # Private: Used to enable insert mode.
   #
   # Returns nothing.
   # Private: Used to enable insert mode.
   #
   # Returns nothing.
-  activateInsertMode: ->
+  activateInsertMode: (subtype = null) ->
     @mode = 'insert'
     @editorElement.component.setInputEnabled(true)
     @setInsertionCheckpoint()
     @mode = 'insert'
     @editorElement.component.setInputEnabled(true)
     @setInsertionCheckpoint()
-    @submode = null
+    @submode = subtype
     @changeModeClass('insert-mode')
     @updateStatusBar()
 
     @changeModeClass('insert-mode')
     @updateStatusBar()
 
+  activateReplaceMode: ->
+    @activateInsertMode('replace')
+    @replaceModeCounter = 0
+    @editorElement.classList.add('replace-mode')
+    @subscriptions.add @replaceModeListener = @editor.onWillInsertText @replaceModeInsertHandler
+    @subscriptions.add @replaceModeUndoListener = @editor.onDidInsertText @replaceModeUndoHandler
+
+  replaceModeInsertHandler: (event) =>
+    chars = event.text?.split('') or []
+    selections = @editor.getSelections()
+    for char in chars
+      continue if char is '\n'
+      for selection in selections
+        selection.delete() unless selection.cursor.isAtEndOfLine()
+    return
+
+  replaceModeUndoHandler: (event) =>
+    @replaceModeCounter++
+
+  replaceModeUndo: ->
+    if @replaceModeCounter > 0
+      @editor.undo()
+      @editor.undo()
+      @editor.moveLeft()
+      @replaceModeCounter--
+
   setInsertionCheckpoint: ->
     @insertionCheckpoint = @editor.createCheckpoint() unless @insertionCheckpoint?
 
   deactivateInsertMode: ->
     return unless @mode in [null, 'insert']
     @editorElement.component.setInputEnabled(false)
   setInsertionCheckpoint: ->
     @insertionCheckpoint = @editor.createCheckpoint() unless @insertionCheckpoint?
 
   deactivateInsertMode: ->
     return unless @mode in [null, 'insert']
     @editorElement.component.setInputEnabled(false)
+    @editorElement.classList.remove('replace-mode')
     @editor.groupChangesSinceCheckpoint(@insertionCheckpoint)
     changes = getChangesSinceCheckpoint(@editor.buffer, @insertionCheckpoint)
     item = @inputOperator(@history[0])
     @editor.groupChangesSinceCheckpoint(@insertionCheckpoint)
     changes = getChangesSinceCheckpoint(@editor.buffer, @insertionCheckpoint)
     item = @inputOperator(@history[0])
@@ -413,6 +458,13 @@ class VimState
       item.confirmChanges(changes)
     for cursor in @editor.getCursors()
       cursor.moveLeft() unless cursor.isAtBeginningOfLine()
       item.confirmChanges(changes)
     for cursor in @editor.getCursors()
       cursor.moveLeft() unless cursor.isAtBeginningOfLine()
+    if @replaceModeListener?
+      @replaceModeListener.dispose()
+      @subscriptions.remove @replaceModeListener
+      @replaceModeListener = null
+      @replaceModeUndoListener.dispose()
+      @subscriptions.remove @replaceModeUndoListener
+      @replaceModeUndoListener = null
 
   deactivateVisualMode: ->
     return unless @mode is 'visual'
 
   deactivateVisualMode: ->
     return unless @mode is 'visual'
@@ -440,7 +492,7 @@ class VimState
     #  * activate-linewise-visual-mode
     if @mode is 'visual'
       if @submode is type
     #  * activate-linewise-visual-mode
     if @mode is 'visual'
       if @submode is type
-        @activateCommandMode()
+        @activateNormalMode()
         return
 
       @submode = type
         return
 
       @submode = type
@@ -486,25 +538,25 @@ class VimState
   activateOperatorPendingMode: ->
     @deactivateInsertMode()
     @mode = 'operator-pending'
   activateOperatorPendingMode: ->
     @deactivateInsertMode()
     @mode = 'operator-pending'
-    @submodule = null
+    @submode = null
     @changeModeClass('operator-pending-mode')
 
     @updateStatusBar()
 
   changeModeClass: (targetMode) ->
     @changeModeClass('operator-pending-mode')
 
     @updateStatusBar()
 
   changeModeClass: (targetMode) ->
-    for mode in ['command-mode', 'insert-mode', 'visual-mode', 'operator-pending-mode']
+    for mode in ['normal-mode', 'insert-mode', 'visual-mode', 'operator-pending-mode']
       if mode is targetMode
         @editorElement.classList.add(mode)
       else
         @editorElement.classList.remove(mode)
 
       if mode is targetMode
         @editorElement.classList.add(mode)
       else
         @editorElement.classList.remove(mode)
 
-  # Private: Resets the command mode back to it's initial state.
+  # Private: Resets the normal mode back to it's initial state.
   #
   # Returns nothing.
   #
   # Returns nothing.
-  resetCommandMode: ->
+  resetNormalMode: ->
     @clearOpStack()
     @editor.clearSelections()
     @clearOpStack()
     @editor.clearSelections()
-    @activateCommandMode()
+    @activateNormalMode()
 
   # Private: A generic way to create a Register prefix based on the event.
   #
 
   # Private: A generic way to create a Register prefix based on the event.
   #
@@ -512,11 +564,19 @@ class VimState
   #
   # Returns nothing.
   registerPrefix: (e) ->
   #
   # Returns nothing.
   registerPrefix: (e) ->
+    new Prefixes.Register(@registerName(e))
+
+  # Private: Gets a register name from a keyboard event
+  #
+  # e - The event
+  #
+  # Returns the name of the register
+  registerName: (e) ->
     keyboardEvent = e.originalEvent?.originalEvent ? e.originalEvent
     name = atom.keymaps.keystrokeForKeyboardEvent(keyboardEvent)
     if name.lastIndexOf('shift-', 0) is 0
       name = name.slice(6)
     keyboardEvent = e.originalEvent?.originalEvent ? e.originalEvent
     name = atom.keymaps.keystrokeForKeyboardEvent(keyboardEvent)
     if name.lastIndexOf('shift-', 0) is 0
       name = name.slice(6)
-    new Prefixes.Register(name)
+    name
 
   # Private: A generic way to create a Number prefix based on the event.
   #
 
   # Private: A generic way to create a Number prefix based on the event.
   #
@@ -535,8 +595,8 @@ class VimState
         @pushOperations(new Prefixes.Repeat(num))
 
   reverseSelections: ->
         @pushOperations(new Prefixes.Repeat(num))
 
   reverseSelections: ->
+    reversed = not @editor.getLastSelection().isReversed()
     for selection in @editor.getSelections()
     for selection in @editor.getSelections()
-      reversed = not selection.isReversed()
       selection.setBufferRange(selection.getBufferRange(), {reversed})
 
   # Private: Figure out whether or not we are in a repeat sequence or we just
       selection.setBufferRange(selection.getBufferRange(), {reversed})
 
   # Private: Figure out whether or not we are in a repeat sequence or we just
@@ -581,6 +641,34 @@ class VimState
   updateStatusBar: ->
     @statusBarManager.update(@mode, @submode)
 
   updateStatusBar: ->
     @statusBarManager.update(@mode, @submode)
 
+  # Private: insert the contents of the register in the editor
+  #
+  # name - the name of the register to insert
+  #
+  # Returns nothing.
+  insertRegister: (name) ->
+    text = @getRegister(name)?.text
+    @editor.insertText(text) if text?
+
+  # Private: ensure the mode follows the state of selections
+  checkSelections: =>
+    return unless @editor?
+    if @editor.getSelections().every((selection) -> selection.isEmpty())
+      @ensureCursorsWithinLine() if @mode is 'normal'
+      @activateNormalMode() if @mode is 'visual'
+    else
+      @activateVisualMode('characterwise') if @mode is 'normal'
+
+  # Private: ensure the cursor stays within the line as appropriate
+  ensureCursorsWithinLine: =>
+    for cursor in @editor.getCursors()
+      {goalColumn} = cursor
+      if cursor.isAtEndOfLine() and not cursor.isAtBeginningOfLine()
+        cursor.moveLeft()
+      cursor.goalColumn = goalColumn
+
+    @editor.mergeCursors()
+
 # This uses private APIs and may break if TextBuffer is refactored.
 # Package authors - copy and paste this code at your own risk.
 getChangesSinceCheckpoint = (buffer, checkpoint) ->
 # This uses private APIs and may break if TextBuffer is refactored.
 # Package authors - copy and paste this code at your own risk.
 getChangesSinceCheckpoint = (buffer, checkpoint) ->
index 3f09c8238bfe5595355230a901042206f12c519b..03d81db13be8d915cfe8354be159a676e67b6e6c 100644 (file)
@@ -54,5 +54,6 @@
   ],
   "directories": {},
   "_shasum": "da184c535d18d8ee7ba2aa229b914009fae11309",
   ],
   "directories": {},
   "_shasum": "da184c535d18d8ee7ba2aa229b914009fae11309",
-  "_resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz"
+  "_resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
index 2b40fe8d2cb78ee6ce995c09bc567b537b0c8df4..01d6532749e89c7e0ce44cd60cb9dafa67a58779 100644 (file)
@@ -69,5 +69,6 @@
     "tarball": "http://registry.npmjs.org/es5-ext/-/es5-ext-0.10.7.tgz"
   },
   "directories": {},
     "tarball": "http://registry.npmjs.org/es5-ext/-/es5-ext-0.10.7.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.7.tgz"
+  "_resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.7.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
index e91385426b05e0e9cded430a94ae2604d35436e2..b861638ad5d27bd498457f40dc7971ad77955161 100644 (file)
@@ -61,5 +61,6 @@
     "tarball": "http://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz"
   },
   "directories": {},
     "tarball": "http://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz"
+  "_resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
index 6a09929ad67677045cab989400131593d765feab..0efffeaec906582bee7805de92e757293ae0881e 100644 (file)
@@ -58,5 +58,6 @@
     "tarball": "http://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz"
   },
   "directories": {},
     "tarball": "http://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz"
+  "_resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
index e4b0cffe76443ae27c5ba1e508251b2d8d328ce7..07973dfab3e4791febfa4447df949afffdd452bc 100644 (file)
@@ -59,5 +59,6 @@
     "tarball": "http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz"
   },
   "directories": {},
     "tarball": "http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz"
+  "_resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
index e675518cfd485d611b921182946c06891d579c60..be85e24136e69eb80c171b70ab7eac34fdab0339 100644 (file)
@@ -9,7 +9,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/mixto"
+    "url": "git+https://github.com/atom/mixto.git"
   },
   "keywords": [
     "mixin",
   },
   "keywords": [
     "mixin",
@@ -60,5 +60,7 @@
   ],
   "directories": {},
   "_shasum": "c320ef61b52f2898f522e17d8bbc6d506d8425b6",
   ],
   "directories": {},
   "_shasum": "c320ef61b52f2898f522e17d8bbc6d506d8425b6",
-  "_resolved": "https://registry.npmjs.org/mixto/-/mixto-1.0.0.tgz"
+  "_resolved": "https://registry.npmjs.org/mixto/-/mixto-1.0.0.tgz",
+  "readme": "ERROR: No README data found!",
+  "homepage": "https://github.com/atom/mixto"
 }
 }
index 63150bc06bab20fbd00037d2af3ea7a9b22b8e62..66179a48b2a978880050238ee9bb5939dbc4f3e0 100644 (file)
@@ -9,7 +9,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/property-accessors"
+    "url": "git+https://github.com/atom/property-accessors.git"
   },
   "keywords": [
     "property",
   },
   "keywords": [
     "property",
@@ -70,5 +70,6 @@
     "tarball": "http://registry.npmjs.org/property-accessors/-/property-accessors-1.1.3.tgz"
   },
   "directories": {},
     "tarball": "http://registry.npmjs.org/property-accessors/-/property-accessors-1.1.3.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/property-accessors/-/property-accessors-1.1.3.tgz"
+  "_resolved": "https://registry.npmjs.org/property-accessors/-/property-accessors-1.1.3.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
index 436e2d7dd298ae2ba623a3b87edc2709dbaa315b..53b6b8a8f8482bbccdc78b4b2cb41c5817d1f9ed 100644 (file)
@@ -9,7 +9,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "http://github.com/atom/emissary.git"
+    "url": "git+ssh://git@github.com/atom/emissary.git"
   },
   "bugs": {
     "url": "https://github.com/atom/emissary/issues"
   },
   "bugs": {
     "url": "https://github.com/atom/emissary/issues"
@@ -73,5 +73,6 @@
     "tarball": "http://registry.npmjs.org/emissary/-/emissary-1.3.3.tgz"
   },
   "directories": {},
     "tarball": "http://registry.npmjs.org/emissary/-/emissary-1.3.3.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/emissary/-/emissary-1.3.3.tgz"
+  "_resolved": "https://registry.npmjs.org/emissary/-/emissary-1.3.3.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
index ae85b419444a39bcd7a414c1703191cc32bdc9f7..92f075a9fcb645f41f816b62afd5a0149b773e3a 100644 (file)
@@ -9,7 +9,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/grim.git"
+    "url": "git+https://github.com/atom/grim.git"
   },
   "bugs": {
     "url": "https://github.com/atom/grim/issues"
   },
   "bugs": {
     "url": "https://github.com/atom/grim/issues"
@@ -69,5 +69,6 @@
     "tarball": "http://registry.npmjs.org/grim/-/grim-0.12.0.tgz"
   },
   "directories": {},
     "tarball": "http://registry.npmjs.org/grim/-/grim-0.12.0.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/grim/-/grim-0.12.0.tgz"
+  "_resolved": "https://registry.npmjs.org/grim/-/grim-0.12.0.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
index d19b561fa18223f9c793227ee472e744ea6b1cd1..5f4b74503e5bfbdb238fc46b4c06fc39d78c7f8b 100644 (file)
@@ -9,7 +9,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/event-kit.git"
+    "url": "git+https://github.com/atom/event-kit.git"
   },
   "bugs": {
     "url": "https://github.com/atom/event-kit/issues"
   },
   "bugs": {
     "url": "https://github.com/atom/event-kit/issues"
@@ -69,5 +69,6 @@
     "tarball": "http://registry.npmjs.org/event-kit/-/event-kit-0.7.2.tgz"
   },
   "directories": {},
     "tarball": "http://registry.npmjs.org/event-kit/-/event-kit-0.7.2.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/event-kit/-/event-kit-0.7.2.tgz"
+  "_resolved": "https://registry.npmjs.org/event-kit/-/event-kit-0.7.2.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
diff --git a/atom/packages/vim-mode/node_modules/grim/LICENSE.md b/atom/packages/vim-mode/node_modules/grim/LICENSE.md
new file mode 100644 (file)
index 0000000..4d231b4
--- /dev/null
@@ -0,0 +1,20 @@
+Copyright (c) 2014 GitHub Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/atom/packages/vim-mode/node_modules/grim/README.md b/atom/packages/vim-mode/node_modules/grim/README.md
new file mode 100644 (file)
index 0000000..c7a023c
--- /dev/null
@@ -0,0 +1,21 @@
+# Grim [![Build Status](https://travis-ci.org/atom/grim.svg)](https://travis-ci.org/atom/grim)
+
+Log deprecate calls
+
+## Installing
+
+```sh
+npm install grim
+```
+
+## Usage
+
+```javascript
+Grim = require('grim')
+
+function someOldMethod() {
+  Grim.deprecate("Use theNewMethod instead.")
+}
+```
+
+To view all calls to deprecated methods use `Grim.logDeprecations()` or get direct access to the deprecated calls by using `Grim.getDeprecations()`
diff --git a/atom/packages/vim-mode/node_modules/grim/lib/deprecation.js b/atom/packages/vim-mode/node_modules/grim/lib/deprecation.js
new file mode 100644 (file)
index 0000000..fa39865
--- /dev/null
@@ -0,0 +1,149 @@
+(function() {
+  var Deprecation, SourceMapCache;
+
+  SourceMapCache = {};
+
+  module.exports = Deprecation = (function() {
+    Deprecation.getFunctionNameFromCallsite = function(callsite) {};
+
+    Deprecation.deserialize = function(_arg) {
+      var deprecation, fileName, lineNumber, message, stack, stacks, _i, _len;
+      message = _arg.message, fileName = _arg.fileName, lineNumber = _arg.lineNumber, stacks = _arg.stacks;
+      deprecation = new Deprecation(message, fileName, lineNumber);
+      for (_i = 0, _len = stacks.length; _i < _len; _i++) {
+        stack = stacks[_i];
+        deprecation.addStack(stack, stack.metadata);
+      }
+      return deprecation;
+    };
+
+    function Deprecation(message, fileName, lineNumber) {
+      this.message = message;
+      this.fileName = fileName;
+      this.lineNumber = lineNumber;
+      this.callCount = 0;
+      this.stackCount = 0;
+      this.stacks = {};
+      this.stackCallCounts = {};
+    }
+
+    Deprecation.prototype.getFunctionNameFromCallsite = function(callsite) {
+      var _ref, _ref1, _ref2;
+      if (callsite.functionName != null) {
+        return callsite.functionName;
+      }
+      if (callsite.isToplevel()) {
+        return (_ref = callsite.getFunctionName()) != null ? _ref : '<unknown>';
+      } else {
+        if (callsite.isConstructor()) {
+          return "new " + (callsite.getFunctionName());
+        } else if (callsite.getMethodName() && !callsite.getFunctionName()) {
+          return callsite.getMethodName();
+        } else {
+          return "" + (callsite.getTypeName()) + "." + ((_ref1 = (_ref2 = callsite.getMethodName()) != null ? _ref2 : callsite.getFunctionName()) != null ? _ref1 : '<anonymous>');
+        }
+      }
+    };
+
+    Deprecation.prototype.getLocationFromCallsite = function(callsite) {
+      var column, fileName, line;
+      if (callsite.location != null) {
+        return callsite.location;
+      }
+      if (callsite.isNative()) {
+        return "native";
+      } else if (callsite.isEval()) {
+        return "eval at " + (this.getLocationFromCallsite(callsite.getEvalOrigin()));
+      } else {
+        fileName = callsite.getFileName();
+        line = callsite.getLineNumber();
+        column = callsite.getColumnNumber();
+        return "" + fileName + ":" + line + ":" + column;
+      }
+    };
+
+    Deprecation.prototype.getFileNameFromCallSite = function(callsite) {
+      var _ref;
+      return (_ref = callsite.fileName) != null ? _ref : callsite.getFileName();
+    };
+
+    Deprecation.prototype.getOriginName = function() {
+      return this.originName;
+    };
+
+    Deprecation.prototype.getMessage = function() {
+      return this.message;
+    };
+
+    Deprecation.prototype.getStacks = function() {
+      var location, parsedStack, parsedStacks, stack, _ref;
+      parsedStacks = [];
+      _ref = this.stacks;
+      for (location in _ref) {
+        stack = _ref[location];
+        parsedStack = this.parseStack(stack);
+        parsedStack.callCount = this.stackCallCounts[location];
+        parsedStack.metadata = stack.metadata;
+        parsedStacks.push(parsedStack);
+      }
+      return parsedStacks;
+    };
+
+    Deprecation.prototype.getStackCount = function() {
+      return this.stackCount;
+    };
+
+    Deprecation.prototype.getCallCount = function() {
+      return this.callCount;
+    };
+
+    Deprecation.prototype.addStack = function(stack, metadata) {
+      var callerLocation, _base, _base1;
+      if (this.originName == null) {
+        this.originName = this.getFunctionNameFromCallsite(stack[0]);
+      }
+      if (this.fileName == null) {
+        this.fileName = this.getFileNameFromCallSite(stack[0]);
+      }
+      if (this.lineNumber == null) {
+        this.lineNumber = typeof (_base = stack[0]).getLineNumber === "function" ? _base.getLineNumber() : void 0;
+      }
+      this.callCount++;
+      stack.metadata = metadata;
+      callerLocation = this.getLocationFromCallsite(stack[1]);
+      if (this.stacks[callerLocation] == null) {
+        this.stacks[callerLocation] = stack;
+        this.stackCount++;
+      }
+      if ((_base1 = this.stackCallCounts)[callerLocation] == null) {
+        _base1[callerLocation] = 0;
+      }
+      return this.stackCallCounts[callerLocation]++;
+    };
+
+    Deprecation.prototype.parseStack = function(stack) {
+      return stack.map((function(_this) {
+        return function(callsite) {
+          return {
+            functionName: _this.getFunctionNameFromCallsite(callsite),
+            location: _this.getLocationFromCallsite(callsite),
+            fileName: _this.getFileNameFromCallSite(callsite)
+          };
+        };
+      })(this));
+    };
+
+    Deprecation.prototype.serialize = function() {
+      return {
+        message: this.getMessage(),
+        lineNumber: this.lineNumber,
+        fileName: this.fileName,
+        stacks: this.getStacks()
+      };
+    };
+
+    return Deprecation;
+
+  })();
+
+}).call(this);
diff --git a/atom/packages/vim-mode/node_modules/grim/lib/grim.js b/atom/packages/vim-mode/node_modules/grim/lib/grim.js
new file mode 100644 (file)
index 0000000..52ca968
--- /dev/null
@@ -0,0 +1,105 @@
+(function() {
+  var Deprecation, Emitter, grim;
+
+  Emitter = require('emissary').Emitter;
+
+  Deprecation = require('./deprecation');
+
+  if (global.__grim__ == null) {
+    grim = global.__grim__ = {
+      deprecations: {},
+      includeDeprecatedAPIs: true,
+      getDeprecations: function() {
+        var deprecation, deprecations, deprecationsByLineNumber, deprecationsByPackage, fileName, lineNumber, packageName, _ref;
+        deprecations = [];
+        _ref = grim.deprecations;
+        for (fileName in _ref) {
+          deprecationsByLineNumber = _ref[fileName];
+          for (lineNumber in deprecationsByLineNumber) {
+            deprecationsByPackage = deprecationsByLineNumber[lineNumber];
+            for (packageName in deprecationsByPackage) {
+              deprecation = deprecationsByPackage[packageName];
+              deprecations.push(deprecation);
+            }
+          }
+        }
+        return deprecations;
+      },
+      getDeprecationsLength: function() {
+        return this.getDeprecations().length;
+      },
+      clearDeprecations: function() {
+        grim.deprecations = {};
+      },
+      logDeprecations: function() {
+        var deprecation, deprecations, _i, _len;
+        deprecations = this.getDeprecations();
+        deprecations.sort(function(a, b) {
+          return b.getCallCount() - a.getCallCount();
+        });
+        console.warn("\nCalls to deprecated functions\n-----------------------------");
+        for (_i = 0, _len = deprecations.length; _i < _len; _i++) {
+          deprecation = deprecations[_i];
+          console.warn("(" + (deprecation.getCallCount()) + ") " + (deprecation.getOriginName()) + " : " + (deprecation.getMessage()), deprecation);
+        }
+      },
+      deprecate: function(message, metadata) {
+        var deprecation, deprecationSite, error, fileName, lineNumber, originalPrepareStackTrace, originalStackTraceLimit, packageName, stack, _base, _base1, _base2, _ref;
+        originalStackTraceLimit = Error.stackTraceLimit;
+        Error.stackTraceLimit = 7;
+        error = new Error;
+        Error.captureStackTrace(error);
+        Error.stackTraceLimit = originalStackTraceLimit;
+        originalPrepareStackTrace = Error.prepareStackTrace;
+        Error.prepareStackTrace = function(error, stack) {
+          return stack;
+        };
+        stack = error.stack.slice(1);
+        Error.prepareStackTrace = originalPrepareStackTrace;
+        deprecationSite = stack[0];
+        fileName = deprecationSite.getFileName();
+        lineNumber = deprecationSite.getLineNumber();
+        packageName = (_ref = metadata != null ? metadata.packageName : void 0) != null ? _ref : "";
+        if ((_base = grim.deprecations)[fileName] == null) {
+          _base[fileName] = {};
+        }
+        if ((_base1 = grim.deprecations[fileName])[lineNumber] == null) {
+          _base1[lineNumber] = {};
+        }
+        if ((_base2 = grim.deprecations[fileName][lineNumber])[packageName] == null) {
+          _base2[packageName] = new Deprecation(message);
+        }
+        deprecation = grim.deprecations[fileName][lineNumber][packageName];
+        deprecation.addStack(stack, metadata);
+        grim.emit("updated", deprecation);
+      },
+      addSerializedDeprecation: function(serializedDeprecation) {
+        var deprecation, fileName, lineNumber, message, packageName, stack, stacks, _base, _base1, _base2, _i, _len, _ref, _ref1, _ref2;
+        deprecation = Deprecation.deserialize(serializedDeprecation);
+        message = deprecation.getMessage();
+        fileName = deprecation.fileName, lineNumber = deprecation.lineNumber;
+        stacks = deprecation.getStacks();
+        packageName = (_ref = (_ref1 = stacks[0]) != null ? (_ref2 = _ref1.metadata) != null ? _ref2.packageName : void 0 : void 0) != null ? _ref : "";
+        if ((_base = grim.deprecations)[fileName] == null) {
+          _base[fileName] = {};
+        }
+        if ((_base1 = grim.deprecations[fileName])[lineNumber] == null) {
+          _base1[lineNumber] = {};
+        }
+        if ((_base2 = grim.deprecations[fileName][lineNumber])[packageName] == null) {
+          _base2[packageName] = new Deprecation(message, fileName, lineNumber);
+        }
+        deprecation = grim.deprecations[fileName][lineNumber][packageName];
+        for (_i = 0, _len = stacks.length; _i < _len; _i++) {
+          stack = stacks[_i];
+          deprecation.addStack(stack, stack.metadata);
+        }
+        grim.emit("updated", deprecation);
+      }
+    };
+    Emitter.extend(grim);
+  }
+
+  module.exports = global.__grim__;
+
+}).call(this);
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/LICENSE.md b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/LICENSE.md
new file mode 100644 (file)
index 0000000..493db50
--- /dev/null
@@ -0,0 +1,20 @@
+Copyright (c) 2013 GitHub Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/README.md b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/README.md
new file mode 100644 (file)
index 0000000..9415c13
--- /dev/null
@@ -0,0 +1,49 @@
+# Emissary – Mixins for Events [![Build Status](https://travis-ci.org/atom/emissary.svg?branch=master)](https://travis-ci.org/atom/emissary)
+
+**Achtung!** This library is currently used in Atom and various Atom dependencies, but our long-term plan is to transition away from it in favor of the simpler [event-kit](https://github.com/atom/event-kit) library. Don't depend on supporting this library forever.
+
+**Achtung Again!** The Subscriber mixin requires ES6 Harmony WeakMaps. To enable them, run your program with the  `node --harmony_collections` flag. If you're using it in a node framework such as jasmine, run its script with the flag enabled as follows: `node --harmony-collections .bin/jasmine-node specs`.
+
+## Emitter
+
+Emitter is backward-compatible with Node's event emitter, but offers more functionality. You can construct standalone `Emitter` instances or use it as a mixin.
+
+* `Emitter.extend(object)`
+  Turns the given object into an emitter by adding the appropriate methods.
+
+* `Emitter.includeInto(class)`
+  Turns the class into an emitter by extending its prototype.
+
+* `::on(eventNames, handler)`
+  Subscribe to one or more events. Events names are separated by spaces, and can optionally be namespaced with a dot-suffix. E.g. `event1 event2.namespace`.
+
+* `::once(eventName, handler)`
+  Like `::on`, but only fires the handler once before unsubscribing automatically.
+
+* `::off(eventNames[, handler])`
+  Unsubscribe to one or more events. Event names are separated by spaces. Passing a non-namespaced event name unsubscribes from every namespace for that event. Passing only a namespace unsubscribes from that entire namespace. Passing a handler removes only a subscription corresponding to the given event name(s) and that handler.
+
+* `::emit(eventName[, data...])`
+  Emit an event with the given name. If the event name is namespaced, only calls handlers for the event associated with the namespace, otherwise it fires all handlers. Handlers are called with zero or more data arguments provided after the event name.
+
+* `::pauseEvents()`
+  Buffers events instead of emitting them until `::resumeEvents` is called.
+
+* `::resumeEvents()`
+  Emits all events buffered since pausing and resumes normal emitting behavior.
+
+* `::getSubscriptionCount()`
+  Get the total number of handlers registered on the emitter.
+
+## Subscriber
+
+Subscriber works in partnership with an emitter or any object supporting subscription cancellation with `.off`. This includes standard Node event emitters and jQuery objects.
+
+* `::subscribe(object, eventNames, handler)`
+  Subscribe to the given event name(s) on the given object.
+
+* `::subscribeWith(object, methodName, eventNames, handler)`
+  Subscribe to the given object with a method other than `.on`.
+
+* `::unsubscribe([object])`
+  Cancel subscriptions previously registered with `::subscribe`. If an object is given, only unsubscribe from that object. If called without an object, unsubscribe from everything.
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/behavior.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/behavior.js
new file mode 100644 (file)
index 0000000..863c2f2
--- /dev/null
@@ -0,0 +1,120 @@
+(function() {
+  var Behavior, PropertyAccessors, Signal, helpers, isEqual,
+    __hasProp = {}.hasOwnProperty,
+    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+    __slice = [].slice;
+
+  isEqual = require('underscore-plus').isEqual;
+
+  PropertyAccessors = require('property-accessors');
+
+  Signal = require('./signal');
+
+  module.exports = Behavior = (function(_super) {
+    __extends(Behavior, _super);
+
+    PropertyAccessors.includeInto(Behavior);
+
+    function Behavior() {
+      var args, subscribeCallback, _ref;
+      args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
+      if (typeof ((_ref = args[0]) != null ? _ref.call : void 0) !== 'function') {
+        this.value = args.shift();
+      }
+      Behavior.__super__.constructor.call(this, subscribeCallback = args.shift());
+    }
+
+    Behavior.prototype.retained = function() {
+      var _this = this;
+      this.subscribe(this, 'value-internal', function(value) {
+        return _this.value = value;
+      });
+      this.subscribe(this, 'value-subscription-added', function(handler) {
+        return handler(_this.value);
+      });
+      return typeof this.subscribeCallback === "function" ? this.subscribeCallback() : void 0;
+    };
+
+    Behavior.prototype.emit = function() {
+      var args, name;
+      name = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
+      if (name === 'value') {
+        this.emit.apply(this, ['value-internal'].concat(__slice.call(args)));
+      }
+      return Behavior.__super__.emit.apply(this, arguments);
+    };
+
+    Behavior.prototype.getValue = function() {
+      if (!(this.retainCount > 0)) {
+        throw new Error("Subscribe to or retain this behavior before calling getValue");
+      }
+      return this.value;
+    };
+
+    Behavior.prototype.and = function(right) {
+      return helpers.combine(this, right, (function(leftValue, rightValue) {
+        return leftValue && rightValue;
+      })).distinctUntilChanged();
+    };
+
+    Behavior.prototype.or = function(right) {
+      return helpers.combine(this, right, (function(leftValue, rightValue) {
+        return leftValue || rightValue;
+      })).distinctUntilChanged();
+    };
+
+    Behavior.prototype.toBehavior = function() {
+      return this;
+    };
+
+    Behavior.prototype.lazyAccessor('changes', function() {
+      var source;
+      source = this;
+      return new Signal(function() {
+        var gotFirst,
+          _this = this;
+        gotFirst = false;
+        return this.subscribe(source, 'value', function() {
+          var metadata, value;
+          value = arguments[0], metadata = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
+          if (gotFirst) {
+            _this.emitValue.apply(_this, [value].concat(__slice.call(metadata)));
+          }
+          return gotFirst = true;
+        });
+      });
+    });
+
+    Behavior.prototype.becomes = function(predicateOrTargetValue) {
+      var predicate, targetValue;
+      if (typeof predicateOrTargetValue !== 'function') {
+        targetValue = predicateOrTargetValue;
+        return this.becomes(function(value) {
+          return isEqual(value, targetValue);
+        });
+      }
+      predicate = predicateOrTargetValue;
+      return this.map(function(value) {
+        return !!predicate(value);
+      }).distinctUntilChanged().changes;
+    };
+
+    Behavior.prototype.becomesLessThan = function(targetValue) {
+      return this.becomes(function(value) {
+        return value < targetValue;
+      });
+    };
+
+    Behavior.prototype.becomesGreaterThan = function(targetValue) {
+      return this.becomes(function(value) {
+        return value > targetValue;
+      });
+    };
+
+    return Behavior;
+
+  })(Signal);
+
+  helpers = require('./helpers');
+
+}).call(this);
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/emissary.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/emissary.js
new file mode 100644 (file)
index 0000000..9ba21f4
--- /dev/null
@@ -0,0 +1,14 @@
+(function() {
+  var combine;
+
+  combine = require('./helpers').combine;
+
+  module.exports = {
+    Emitter: require('./emitter'),
+    Subscriber: require('./subscriber'),
+    Signal: require('./signal'),
+    Behavior: require('./behavior'),
+    combine: combine
+  };
+
+}).call(this);
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/emitter.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/emitter.js
new file mode 100644 (file)
index 0000000..0e999db
--- /dev/null
@@ -0,0 +1,384 @@
+(function() {
+  var Emitter, Mixin, Signal, Subscription, removeFromArray, subscriptionRemovedPattern, _ref,
+    __hasProp = {}.hasOwnProperty,
+    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+    __slice = [].slice;
+
+  Mixin = require('mixto');
+
+  Signal = null;
+
+  Subscription = null;
+
+  subscriptionRemovedPattern = /^(last-)?.+-subscription-removed$/;
+
+  module.exports = Emitter = (function(_super) {
+    __extends(Emitter, _super);
+
+    function Emitter() {
+      _ref = Emitter.__super__.constructor.apply(this, arguments);
+      return _ref;
+    }
+
+    Emitter.prototype.eventHandlersByEventName = null;
+
+    Emitter.prototype.eventHandlersByNamespace = null;
+
+    Emitter.prototype.subscriptionCounts = null;
+
+    Emitter.prototype.pauseCountsByEventName = null;
+
+    Emitter.prototype.queuedEventsByEventName = null;
+
+    Emitter.prototype.globalPauseCount = null;
+
+    Emitter.prototype.globalQueuedEvents = null;
+
+    Emitter.prototype.signalsByEventName = null;
+
+    Emitter.prototype.on = function(eventNames, handler) {
+      var eventName, namespace, _base, _base1, _base2, _i, _len, _ref1, _ref2;
+      _ref1 = eventNames.split(/\s+/);
+      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
+        eventName = _ref1[_i];
+        if (!(eventName !== '')) {
+          continue;
+        }
+        _ref2 = eventName.split('.'), eventName = _ref2[0], namespace = _ref2[1];
+        this.emit("" + eventName + "-subscription-will-be-added", handler);
+        if (this.incrementSubscriptionCount(eventName) === 1) {
+          this.emit("first-" + eventName + "-subscription-will-be-added", handler);
+        }
+        if (this.eventHandlersByEventName == null) {
+          this.eventHandlersByEventName = {};
+        }
+        if ((_base = this.eventHandlersByEventName)[eventName] == null) {
+          _base[eventName] = [];
+        }
+        this.eventHandlersByEventName[eventName].push(handler);
+        if (namespace) {
+          if (this.eventHandlersByNamespace == null) {
+            this.eventHandlersByNamespace = {};
+          }
+          if ((_base1 = this.eventHandlersByNamespace)[namespace] == null) {
+            _base1[namespace] = {};
+          }
+          if ((_base2 = this.eventHandlersByNamespace[namespace])[eventName] == null) {
+            _base2[eventName] = [];
+          }
+          this.eventHandlersByNamespace[namespace][eventName].push(handler);
+        }
+        this.emit("" + eventName + "-subscription-added", handler);
+      }
+      if (Subscription == null) {
+        Subscription = require('./subscription');
+      }
+      return new Subscription(this, eventNames, handler);
+    };
+
+    Emitter.prototype.once = function(eventName, handler) {
+      var subscription;
+      return subscription = this.on(eventName, function() {
+        var args;
+        args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
+        subscription.off();
+        return handler.apply(null, args);
+      });
+    };
+
+    Emitter.prototype.signal = function(eventName) {
+      var _base;
+      if (Signal == null) {
+        Signal = require('./signal');
+      }
+      if (this.signalsByEventName == null) {
+        this.signalsByEventName = {};
+      }
+      return (_base = this.signalsByEventName)[eventName] != null ? (_base = this.signalsByEventName)[eventName] : _base[eventName] = Signal.fromEmitter(this, eventName);
+    };
+
+    Emitter.prototype.behavior = function(eventName, initialValue) {
+      return this.signal(eventName).toBehavior(initialValue);
+    };
+
+    Emitter.prototype.emit = function(eventName, payload) {
+      var handler, handlers, queuedEvents, _i, _len, _ref1, _ref2, _ref3;
+      if (arguments.length > 2 || /\s|\./.test(eventName)) {
+        return this.emitSlow.apply(this, arguments);
+      } else {
+        if (this.globalQueuedEvents != null) {
+          return this.globalQueuedEvents.push([eventName, payload]);
+        } else {
+          if (queuedEvents = (_ref1 = this.queuedEventsByEventName) != null ? _ref1[eventName] : void 0) {
+            return queuedEvents.push([eventName, payload]);
+          } else if (handlers = (_ref2 = this.eventHandlersByEventName) != null ? _ref2[eventName] : void 0) {
+            _ref3 = handlers.slice();
+            for (_i = 0, _len = _ref3.length; _i < _len; _i++) {
+              handler = _ref3[_i];
+              handler(payload);
+            }
+            return this.emit("after-" + eventName, payload);
+          }
+        }
+      }
+    };
+
+    Emitter.prototype.emitSlow = function() {
+      var args, eventName, handlers, namespace, queuedEvents, _ref1, _ref2, _ref3, _ref4, _ref5, _ref6;
+      eventName = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
+      if (this.globalQueuedEvents) {
+        return this.globalQueuedEvents.push([eventName].concat(__slice.call(args)));
+      } else {
+        _ref1 = eventName.split('.'), eventName = _ref1[0], namespace = _ref1[1];
+        if (namespace) {
+          if (queuedEvents = (_ref2 = this.queuedEventsByEventName) != null ? _ref2[eventName] : void 0) {
+            return queuedEvents.push(["" + eventName + "." + namespace].concat(__slice.call(args)));
+          } else if (handlers = (_ref3 = this.eventHandlersByNamespace) != null ? (_ref4 = _ref3[namespace]) != null ? _ref4[eventName] : void 0 : void 0) {
+            (function(func, args, ctor) {
+              ctor.prototype = func.prototype;
+              var child = new ctor, result = func.apply(child, args);
+              return Object(result) === result ? result : child;
+            })(Array, handlers, function(){}).forEach(function(handler) {
+              return handler.apply(null, args);
+            });
+            return this.emit.apply(this, ["after-" + eventName].concat(__slice.call(args)));
+          }
+        } else {
+          if (queuedEvents = (_ref5 = this.queuedEventsByEventName) != null ? _ref5[eventName] : void 0) {
+            return queuedEvents.push([eventName].concat(__slice.call(args)));
+          } else if (handlers = (_ref6 = this.eventHandlersByEventName) != null ? _ref6[eventName] : void 0) {
+            (function(func, args, ctor) {
+              ctor.prototype = func.prototype;
+              var child = new ctor, result = func.apply(child, args);
+              return Object(result) === result ? result : child;
+            })(Array, handlers, function(){}).forEach(function(handler) {
+              return handler.apply(null, args);
+            });
+            return this.emit.apply(this, ["after-" + eventName].concat(__slice.call(args)));
+          }
+        }
+      }
+    };
+
+    Emitter.prototype.off = function(eventNames, handler) {
+      var eventHandlers, eventName, handlers, namespace, namespaceHandlers, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref1, _ref10, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9;
+      if (eventNames) {
+        _ref1 = eventNames.split(/\s+/);
+        for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
+          eventName = _ref1[_i];
+          if (!(eventName !== '')) {
+            continue;
+          }
+          _ref2 = eventName.split('.'), eventName = _ref2[0], namespace = _ref2[1];
+          if (eventName === '') {
+            eventName = void 0;
+          }
+          if (namespace) {
+            if (eventName) {
+              handlers = (_ref3 = (_ref4 = this.eventHandlersByNamespace) != null ? (_ref5 = _ref4[namespace]) != null ? _ref5[eventName] : void 0 : void 0) != null ? _ref3 : [];
+              if (handler != null) {
+                removeFromArray(handlers, handler);
+                this.off(eventName, handler);
+              } else {
+                _ref6 = (function(func, args, ctor) {
+                  ctor.prototype = func.prototype;
+                  var child = new ctor, result = func.apply(child, args);
+                  return Object(result) === result ? result : child;
+                })(Array, handlers, function(){});
+                for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) {
+                  handler = _ref6[_j];
+                  removeFromArray(handlers, handler);
+                  this.off(eventName, handler);
+                }
+              }
+            } else {
+              namespaceHandlers = (_ref7 = (_ref8 = this.eventHandlersByNamespace) != null ? _ref8[namespace] : void 0) != null ? _ref7 : {};
+              if (handler != null) {
+                for (eventName in namespaceHandlers) {
+                  handlers = namespaceHandlers[eventName];
+                  removeFromArray(handlers, handler);
+                  this.off(eventName, handler);
+                }
+              } else {
+                for (eventName in namespaceHandlers) {
+                  handlers = namespaceHandlers[eventName];
+                  _ref9 = (function(func, args, ctor) {
+                    ctor.prototype = func.prototype;
+                    var child = new ctor, result = func.apply(child, args);
+                    return Object(result) === result ? result : child;
+                  })(Array, handlers, function(){});
+                  for (_k = 0, _len2 = _ref9.length; _k < _len2; _k++) {
+                    handler = _ref9[_k];
+                    removeFromArray(handlers, handler);
+                    this.off(eventName, handler);
+                  }
+                }
+              }
+            }
+          } else {
+            eventHandlers = (_ref10 = this.eventHandlersByEventName) != null ? _ref10[eventName] : void 0;
+            if (eventHandlers == null) {
+              return;
+            }
+            if (handler == null) {
+              for (_l = 0, _len3 = eventHandlers.length; _l < _len3; _l++) {
+                handler = eventHandlers[_l];
+                this.off(eventName, handler);
+              }
+              return;
+            }
+            if (removeFromArray(eventHandlers, handler)) {
+              this.decrementSubscriptionCount(eventName);
+              this.emit("" + eventName + "-subscription-removed", handler);
+              if (this.getSubscriptionCount(eventName) === 0) {
+                this.emit("last-" + eventName + "-subscription-removed", handler);
+                delete this.eventHandlersByEventName[eventName];
+              }
+            }
+          }
+        }
+      } else {
+        for (eventName in this.eventHandlersByEventName) {
+          if (!subscriptionRemovedPattern.test(eventName)) {
+            this.off(eventName);
+          }
+        }
+        for (eventName in this.eventHandlersByEventName) {
+          this.off(eventName);
+        }
+        return this.eventHandlersByNamespace = {};
+      }
+    };
+
+    Emitter.prototype.pauseEvents = function(eventNames) {
+      var eventName, _base, _base1, _i, _len, _ref1, _results;
+      if (eventNames) {
+        _ref1 = eventNames.split(/\s+/);
+        _results = [];
+        for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
+          eventName = _ref1[_i];
+          if (!(eventName !== '')) {
+            continue;
+          }
+          if (this.pauseCountsByEventName == null) {
+            this.pauseCountsByEventName = {};
+          }
+          if (this.queuedEventsByEventName == null) {
+            this.queuedEventsByEventName = {};
+          }
+          if ((_base = this.pauseCountsByEventName)[eventName] == null) {
+            _base[eventName] = 0;
+          }
+          this.pauseCountsByEventName[eventName]++;
+          _results.push((_base1 = this.queuedEventsByEventName)[eventName] != null ? (_base1 = this.queuedEventsByEventName)[eventName] : _base1[eventName] = []);
+        }
+        return _results;
+      } else {
+        if (this.globalPauseCount == null) {
+          this.globalPauseCount = 0;
+        }
+        if (this.globalQueuedEvents == null) {
+          this.globalQueuedEvents = [];
+        }
+        return this.globalPauseCount++;
+      }
+    };
+
+    Emitter.prototype.resumeEvents = function(eventNames) {
+      var event, eventName, queuedEvents, _i, _j, _len, _len1, _ref1, _ref2, _results, _results1;
+      if (eventNames) {
+        _ref1 = eventNames.split(/\s+/);
+        _results = [];
+        for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
+          eventName = _ref1[_i];
+          if (eventName !== '') {
+            if (((_ref2 = this.pauseCountsByEventName) != null ? _ref2[eventName] : void 0) > 0 && --this.pauseCountsByEventName[eventName] === 0) {
+              queuedEvents = this.queuedEventsByEventName[eventName];
+              this.queuedEventsByEventName[eventName] = null;
+              _results.push((function() {
+                var _j, _len1, _results1;
+                _results1 = [];
+                for (_j = 0, _len1 = queuedEvents.length; _j < _len1; _j++) {
+                  event = queuedEvents[_j];
+                  _results1.push(this.emit.apply(this, event));
+                }
+                return _results1;
+              }).call(this));
+            } else {
+              _results.push(void 0);
+            }
+          }
+        }
+        return _results;
+      } else {
+        for (eventName in this.pauseCountsByEventName) {
+          this.resumeEvents(eventName);
+        }
+        if (this.globalPauseCount > 0 && --this.globalPauseCount === 0) {
+          queuedEvents = this.globalQueuedEvents;
+          this.globalQueuedEvents = null;
+          _results1 = [];
+          for (_j = 0, _len1 = queuedEvents.length; _j < _len1; _j++) {
+            event = queuedEvents[_j];
+            _results1.push(this.emit.apply(this, event));
+          }
+          return _results1;
+        }
+      }
+    };
+
+    Emitter.prototype.incrementSubscriptionCount = function(eventName) {
+      var _base;
+      if (this.subscriptionCounts == null) {
+        this.subscriptionCounts = {};
+      }
+      if ((_base = this.subscriptionCounts)[eventName] == null) {
+        _base[eventName] = 0;
+      }
+      return ++this.subscriptionCounts[eventName];
+    };
+
+    Emitter.prototype.decrementSubscriptionCount = function(eventName) {
+      var count;
+      count = --this.subscriptionCounts[eventName];
+      if (count === 0) {
+        delete this.subscriptionCounts[eventName];
+      }
+      return count;
+    };
+
+    Emitter.prototype.getSubscriptionCount = function(eventName) {
+      var count, name, total, _ref1, _ref2, _ref3;
+      if (eventName != null) {
+        return (_ref1 = (_ref2 = this.subscriptionCounts) != null ? _ref2[eventName] : void 0) != null ? _ref1 : 0;
+      } else {
+        total = 0;
+        _ref3 = this.subscriptionCounts;
+        for (name in _ref3) {
+          count = _ref3[name];
+          total += count;
+        }
+        return total;
+      }
+    };
+
+    Emitter.prototype.hasSubscriptions = function(eventName) {
+      return this.getSubscriptionCount(eventName) > 0;
+    };
+
+    return Emitter;
+
+  })(Mixin);
+
+  removeFromArray = function(array, element) {
+    var index;
+    index = array.indexOf(element);
+    if (index > -1) {
+      array.splice(index, 1);
+      return true;
+    } else {
+      return false;
+    }
+  };
+
+}).call(this);
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/helpers.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/helpers.js
new file mode 100644 (file)
index 0000000..89df58c
--- /dev/null
@@ -0,0 +1,55 @@
+(function() {
+  var Behavior, combineArray, combineWithFunction,
+    __slice = [].slice;
+
+  Behavior = require('./behavior');
+
+  exports.combine = function() {
+    var args;
+    args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
+    if (args.length === 1 && Array.isArray(args[0])) {
+      return combineArray(args[0]);
+    } else if (typeof args[args.length - 1] === 'function') {
+      return combineWithFunction(args);
+    } else {
+      throw new Error("Invalid object type");
+    }
+  };
+
+  combineArray = function(array) {
+    var behavior;
+    return behavior = new Behavior(function() {
+      var element, i, outputArray, ready, _i, _len,
+        _this = this;
+      outputArray = array.slice();
+      ready = false;
+      for (i = _i = 0, _len = array.length; _i < _len; i = ++_i) {
+        element = array[i];
+        if (element.constructor.name === 'Behavior') {
+          (function(element, i) {
+            return _this.subscribe(element.onValue(function(value, metadata) {
+              if (ready) {
+                outputArray = outputArray.slice();
+              }
+              outputArray[i] = value;
+              if (ready) {
+                return _this.emitValue(outputArray, metadata);
+              }
+            }));
+          })(element, i);
+        }
+      }
+      ready = true;
+      return this.emitValue(outputArray);
+    });
+  };
+
+  combineWithFunction = function(args) {
+    var fn;
+    fn = args.pop();
+    return combineArray(args).map(function(argsArray) {
+      return fn.apply(null, argsArray);
+    });
+  };
+
+}).call(this);
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/signal.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/signal.js
new file mode 100644 (file)
index 0000000..368f63a
--- /dev/null
@@ -0,0 +1,292 @@
+(function() {
+  var Behavior, Emitter, Signal, Subscriber, isEqual,
+    __hasProp = {}.hasOwnProperty,
+    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+    __slice = [].slice;
+
+  isEqual = require('underscore-plus').isEqual;
+
+  Emitter = require('./emitter');
+
+  Subscriber = require('./subscriber');
+
+  Behavior = null;
+
+  module.exports = Signal = (function(_super) {
+    __extends(Signal, _super);
+
+    Subscriber.includeInto(Signal);
+
+    Signal.fromEmitter = function(emitter, eventName) {
+      return new Signal(function() {
+        var _this = this;
+        return this.subscribe(emitter, eventName, function() {
+          var metadata, value;
+          value = arguments[0], metadata = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
+          return _this.emitValue.apply(_this, [value].concat(__slice.call(metadata)));
+        });
+      });
+    };
+
+    function Signal(subscribeCallback) {
+      var _this = this;
+      this.subscribeCallback = subscribeCallback;
+      this.retainCount = 0;
+      this.on('value-subscription-will-be-added', function() {
+        return _this.retain();
+      });
+      this.on('value-subscription-removed', function() {
+        return _this.release();
+      });
+    }
+
+    Signal.prototype.isSignal = true;
+
+    Signal.prototype.retained = function() {
+      return typeof this.subscribeCallback === "function" ? this.subscribeCallback() : void 0;
+    };
+
+    Signal.prototype.released = function() {
+      return this.unsubscribe();
+    };
+
+    Signal.prototype.retain = function() {
+      if (++this.retainCount === 1) {
+        if (typeof this.retained === "function") {
+          this.retained();
+        }
+      }
+      return this;
+    };
+
+    Signal.prototype.release = function() {
+      if (--this.retainCount === 0) {
+        if (typeof this.released === "function") {
+          this.released();
+        }
+      }
+      return this;
+    };
+
+    Signal.prototype.onValue = function(handler) {
+      return this.on('value', handler);
+    };
+
+    Signal.prototype.emitValue = function(value, metadata) {
+      if (metadata == null) {
+        metadata = {};
+      }
+      if (metadata.source == null) {
+        metadata.source = this;
+      }
+      return this.emit('value', value, metadata);
+    };
+
+    Signal.prototype.toBehavior = function(initialValue) {
+      var source;
+      source = this;
+      return this.buildBehavior(initialValue, function() {
+        var _this = this;
+        return this.subscribe(source, 'value', function() {
+          var metadata, value;
+          value = arguments[0], metadata = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
+          return _this.emitValue.apply(_this, [value].concat(__slice.call(metadata)));
+        });
+      });
+    };
+
+    Signal.prototype.changes = function() {
+      return this;
+    };
+
+    Signal.prototype.injectMetadata = function(fn) {
+      var source;
+      source = this;
+      return new this.constructor(function() {
+        var _this = this;
+        return this.subscribe(source, 'value', function(value, metadata) {
+          var k, newMetadata, v;
+          newMetadata = fn(value, metadata);
+          for (k in newMetadata) {
+            v = newMetadata[k];
+            metadata[k] = v;
+          }
+          return _this.emitValue(value, metadata);
+        });
+      });
+    };
+
+    Signal.prototype.filter = function(predicate) {
+      var source;
+      source = this;
+      return new this.constructor(function() {
+        var _this = this;
+        return this.subscribe(source, 'value', function() {
+          var metadata, value;
+          value = arguments[0], metadata = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
+          if (predicate.call(value, value)) {
+            return _this.emitValue.apply(_this, [value].concat(__slice.call(metadata)));
+          }
+        });
+      });
+    };
+
+    Signal.prototype.filterDefined = function() {
+      return this.filter(function(value) {
+        return value != null;
+      });
+    };
+
+    Signal.prototype.map = function(fn) {
+      var property, source;
+      if (typeof fn === 'string') {
+        property = fn;
+        fn = function(value) {
+          return value != null ? value[property] : void 0;
+        };
+      }
+      source = this;
+      return new this.constructor(function() {
+        var _this = this;
+        return this.subscribe(source, 'value', function() {
+          var metadata, value;
+          value = arguments[0], metadata = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
+          return _this.emitValue.apply(_this, [fn.call(value, value)].concat(__slice.call(metadata)));
+        });
+      });
+    };
+
+    Signal.prototype["switch"] = function(fn) {
+      var source;
+      source = this.map(fn);
+      return new this.constructor(function() {
+        var currentSignal,
+          _this = this;
+        currentSignal = null;
+        return this.subscribe(source, 'value', function(newSignal, outerMetadata) {
+          if (currentSignal != null) {
+            _this.unsubscribe(currentSignal);
+          }
+          currentSignal = newSignal;
+          if (currentSignal != null) {
+            return _this.subscribe(currentSignal, 'value', function(value, innerMetadata) {
+              return _this.emitValue(value, innerMetadata);
+            });
+          } else {
+            return _this.emitValue(void 0, outerMetadata);
+          }
+        });
+      });
+    };
+
+    Signal.prototype.skipUntil = function(predicateOrTargetValue) {
+      var doneSkipping, predicate, targetValue;
+      if (typeof predicateOrTargetValue !== 'function') {
+        targetValue = predicateOrTargetValue;
+        return this.skipUntil(function(value) {
+          return isEqual(value, targetValue);
+        });
+      }
+      predicate = predicateOrTargetValue;
+      doneSkipping = false;
+      return this.filter(function(value) {
+        if (doneSkipping) {
+          return true;
+        }
+        if (predicate(value)) {
+          return doneSkipping = true;
+        } else {
+          return false;
+        }
+      });
+    };
+
+    Signal.prototype.scan = function(initialValue, fn) {
+      var source;
+      source = this;
+      return this.buildBehavior(initialValue, function() {
+        var oldValue,
+          _this = this;
+        oldValue = initialValue;
+        return this.subscribe(source, 'value', function() {
+          var metadata, newValue;
+          newValue = arguments[0], metadata = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
+          return _this.emitValue.apply(_this, [(oldValue = fn(oldValue, newValue))].concat(__slice.call(metadata)));
+        });
+      });
+    };
+
+    Signal.prototype.diff = function(initialValue, fn) {
+      var source;
+      source = this;
+      return this.buildBehavior(function() {
+        var oldValue,
+          _this = this;
+        oldValue = initialValue;
+        return this.subscribe(source, 'value', function() {
+          var fnOldValue, metadata, newValue;
+          newValue = arguments[0], metadata = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
+          fnOldValue = oldValue;
+          oldValue = newValue;
+          return _this.emitValue.apply(_this, [fn(fnOldValue, newValue)].concat(__slice.call(metadata)));
+        });
+      });
+    };
+
+    Signal.prototype.distinctUntilChanged = function() {
+      var source;
+      source = this;
+      return new this.constructor(function() {
+        var oldValue, receivedValue,
+          _this = this;
+        receivedValue = false;
+        oldValue = void 0;
+        return this.subscribe(source, 'value', function() {
+          var metadata, newValue;
+          newValue = arguments[0], metadata = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
+          if (receivedValue) {
+            if (isEqual(oldValue, newValue)) {
+              return oldValue = newValue;
+            } else {
+              oldValue = newValue;
+              return _this.emitValue.apply(_this, [newValue].concat(__slice.call(metadata)));
+            }
+          } else {
+            receivedValue = true;
+            oldValue = newValue;
+            return _this.emitValue.apply(_this, [newValue].concat(__slice.call(metadata)));
+          }
+        });
+      });
+    };
+
+    Signal.prototype.equals = function(expected) {
+      return this.map(function(actual) {
+        return isEqual(actual, expected);
+      }).distinctUntilChanged();
+    };
+
+    Signal.prototype.isDefined = function() {
+      return this.map(function(value) {
+        return value != null;
+      }).distinctUntilChanged();
+    };
+
+    Signal.prototype.buildBehavior = function() {
+      var args;
+      args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
+      if (Behavior == null) {
+        Behavior = require('./behavior');
+      }
+      return (function(func, args, ctor) {
+        ctor.prototype = func.prototype;
+        var child = new ctor, result = func.apply(child, args);
+        return Object(result) === result ? result : child;
+      })(Behavior, args, function(){});
+    };
+
+    return Signal;
+
+  })(Emitter);
+
+}).call(this);
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/subscriber.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/subscriber.js
new file mode 100644 (file)
index 0000000..25016be
--- /dev/null
@@ -0,0 +1,109 @@
+(function() {
+  var Mixin, Signal, Subscriber, Subscription, WeakMap, _ref, _ref1,
+    __hasProp = {}.hasOwnProperty,
+    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+    __slice = [].slice;
+
+  Mixin = require('mixto');
+
+  Signal = null;
+
+  WeakMap = (_ref = global.WeakMap) != null ? _ref : require('es6-weak-map');
+
+  Subscription = require('./subscription');
+
+  module.exports = Subscriber = (function(_super) {
+    __extends(Subscriber, _super);
+
+    function Subscriber() {
+      _ref1 = Subscriber.__super__.constructor.apply(this, arguments);
+      return _ref1;
+    }
+
+    Subscriber.prototype.subscribeWith = function(eventEmitter, methodName, args) {
+      var callback, eventNames;
+      if (eventEmitter[methodName] == null) {
+        throw new Error("Object does not have method '" + methodName + "' with which to subscribe");
+      }
+      eventEmitter[methodName].apply(eventEmitter, args);
+      eventNames = args[0];
+      callback = args[args.length - 1];
+      return this.addSubscription(new Subscription(eventEmitter, eventNames, callback));
+    };
+
+    Subscriber.prototype.addSubscription = function(subscription) {
+      var emitter;
+      if (this._subscriptions == null) {
+        this._subscriptions = [];
+      }
+      this._subscriptions.push(subscription);
+      emitter = subscription.emitter;
+      if (emitter != null) {
+        if (this._subscriptionsByObject == null) {
+          this._subscriptionsByObject = new WeakMap;
+        }
+        if (this._subscriptionsByObject.has(emitter)) {
+          this._subscriptionsByObject.get(emitter).push(subscription);
+        } else {
+          this._subscriptionsByObject.set(emitter, [subscription]);
+        }
+      }
+      return subscription;
+    };
+
+    Subscriber.prototype.subscribe = function() {
+      var args, eventEmitterOrSubscription;
+      eventEmitterOrSubscription = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
+      if (args.length === 0) {
+        return this.addSubscription(eventEmitterOrSubscription);
+      } else {
+        if (args.length === 1 && eventEmitterOrSubscription.isSignal) {
+          args.unshift('value');
+        }
+        return this.subscribeWith(eventEmitterOrSubscription, 'on', args);
+      }
+    };
+
+    Subscriber.prototype.subscribeToCommand = function() {
+      var args, eventEmitter;
+      eventEmitter = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
+      return this.subscribeWith(eventEmitter, 'command', args);
+    };
+
+    Subscriber.prototype.unsubscribe = function(object) {
+      var index, subscription, _i, _j, _len, _len1, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7;
+      if (object != null) {
+        _ref4 = (_ref2 = (_ref3 = this._subscriptionsByObject) != null ? _ref3.get(object) : void 0) != null ? _ref2 : [];
+        for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
+          subscription = _ref4[_i];
+          if (typeof subscription.dispose === 'function') {
+            subscription.dispose();
+          } else {
+            subscription.off();
+          }
+          index = this._subscriptions.indexOf(subscription);
+          if (index >= 0) {
+            this._subscriptions.splice(index, 1);
+          }
+        }
+        return (_ref5 = this._subscriptionsByObject) != null ? _ref5["delete"](object) : void 0;
+      } else {
+        _ref7 = (_ref6 = this._subscriptions) != null ? _ref6 : [];
+        for (_j = 0, _len1 = _ref7.length; _j < _len1; _j++) {
+          subscription = _ref7[_j];
+          if (typeof subscription.dispose === 'function') {
+            subscription.dispose();
+          } else {
+            subscription.off();
+          }
+        }
+        this._subscriptions = null;
+        return this._subscriptionsByObject = null;
+      }
+    };
+
+    return Subscriber;
+
+  })(Mixin);
+
+}).call(this);
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/subscription.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/lib/subscription.js
new file mode 100644 (file)
index 0000000..b1d749f
--- /dev/null
@@ -0,0 +1,40 @@
+(function() {
+  var Emitter, Subscription,
+    __hasProp = {}.hasOwnProperty,
+    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
+
+  Emitter = require('./emitter');
+
+  module.exports = Subscription = (function(_super) {
+    __extends(Subscription, _super);
+
+    Subscription.prototype.cancelled = false;
+
+    function Subscription(emitter, eventNames, handler) {
+      this.emitter = emitter;
+      this.eventNames = eventNames;
+      this.handler = handler;
+    }
+
+    Subscription.prototype.off = function() {
+      return this.dispose();
+    };
+
+    Subscription.prototype.dispose = function() {
+      var unsubscribe, _ref;
+      if (this.cancelled) {
+        return;
+      }
+      unsubscribe = (_ref = this.emitter.off) != null ? _ref : this.emitter.removeListener;
+      unsubscribe.call(this.emitter, this.eventNames, this.handler);
+      this.emitter = null;
+      this.handler = null;
+      this.cancelled = true;
+      return this.emit('cancelled');
+    };
+
+    return Subscription;
+
+  })(Emitter);
+
+}).call(this);
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/.lint b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/.lint
new file mode 100644 (file)
index 0000000..cf54d81
--- /dev/null
@@ -0,0 +1,11 @@
+@root
+
+module
+
+tabs
+indent 2
+maxlen 100
+
+ass
+nomen
+plusplus
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/.npmignore b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/.npmignore
new file mode 100644 (file)
index 0000000..155e41f
--- /dev/null
@@ -0,0 +1,4 @@
+.DS_Store
+/node_modules
+/npm-debug.log
+/.lintcache
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/.travis.yml b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/.travis.yml
new file mode 100644 (file)
index 0000000..08f04a1
--- /dev/null
@@ -0,0 +1,10 @@
+sudo: false # use faster docker infrastructure
+language: node_js
+node_js:
+  - 0.10
+  - 0.12
+  - iojs
+
+notifications:
+  email:
+    - medikoo+es6-weak-map@medikoo.com
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/CHANGES b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/CHANGES
new file mode 100644 (file)
index 0000000..3394408
--- /dev/null
@@ -0,0 +1,24 @@
+v0.1.4  --  2015.04.13
+* Republish v0.1.2 as v0.1.4 due to breaking changes
+  (v0.1.3 should have been published as next major)
+
+v0.1.3  --  2015.04.12
+* Update up to changes in specification (require new, remove clear method)
+* Improve native implementation validation
+* Configure lint scripts
+* Rename LICENCE to LICENSE
+
+v0.1.2  --  2014.09.01
+* Use internal random and unique id generator instead of external (time-uuid based).
+  Global uniqueness is not needed in scope of this module. Fixes #1
+
+v0.1.1  --  2014.05.15
+* Improve valid WeakMap detection
+
+v0.1.0  --  2014.04.29
+* Assure to depend only npm hosted dependencies
+* Update to use latest versions of dependencies
+* Use ES6 symbols internally
+
+v0.0.0  --  2013.10.24
+Initial (dev version)
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/LICENCE b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/LICENCE
new file mode 100644 (file)
index 0000000..aaf3528
--- /dev/null
@@ -0,0 +1,19 @@
+Copyright (C) 2013 Mariusz Nowak (www.medikoo.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/README.md b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/README.md
new file mode 100644 (file)
index 0000000..dd91b46
--- /dev/null
@@ -0,0 +1,65 @@
+# es6-weak-map
+## WeakMap collection as specified in ECMAScript6
+
+_Roughly inspired by Mark Miller's and Kris Kowal's [WeakMap implementation](https://github.com/drses/weak-map)_.
+
+Differences are:
+- Assumes compliant ES5 environment (no weird ES3 workarounds or hacks)
+- Well modularized CJS style
+- Based on one solution.
+
+### Limitations
+
+- Will fail on non extensible objects provided as keys
+- While `clear` method is provided, it's not perfectly spec compliant. If some objects were saved as _values_, they need to be removed via `delete`. Otherwise they'll remain infinitely attached to _key_ object (that means, they'll be free for GC only if _key_ object was collected as well).
+
+### Installation
+
+       $ npm install es6-weak-map
+
+To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)
+
+### Usage
+
+If you want to make sure your environment implements `WeakMap`, do:
+
+```javascript
+require('es6-weak-map/implement');
+```
+
+If you'd like to use native version when it exists and fallback to polyfill if it doesn't, but without implementing `WeakMap` on global scope, do:
+
+```javascript
+var WeakMap = require('es6-weak-map');
+```
+
+If you strictly want to use polyfill even if native `WeakMap` exists, do:
+
+```javascript
+var WeakMap = require('es6-weak-map/polyfill');
+```
+
+#### API
+
+Best is to refer to [specification](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-weakmap-objects). Still if you want quick look, follow example:
+
+```javascript
+var WeakMap = require('es6-weak-map');
+
+var map = new WeakMap();
+var obj = {};
+
+map.set(obj, 'foo'); // map
+map.get(obj);        // 'foo'
+map.has(obj);        // true
+map.delete(obj);     // true
+map.get(obj);        // undefined
+map.has(obj);        // false
+map.set(obj, 'bar'); // map
+map.clear();         // undefined
+map.has(obj);        // false
+```
+
+## Tests [![Build Status](https://travis-ci.org/medikoo/es6-weak-map.png)](https://travis-ci.org/medikoo/es6-weak-map)
+
+       $ npm test
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/implement.js
new file mode 100644 (file)
index 0000000..6c3f306
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(require('es5-ext/global'), 'WeakMap',
+               { value: require('./polyfill'), configurable: true, enumerable: false,
+                       writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/index.js
new file mode 100644 (file)
index 0000000..5edc4cc
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+module.exports = require('./is-implemented')() ?
+               WeakMap : require('./polyfill');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/is-implemented.js
new file mode 100644 (file)
index 0000000..455ff81
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+module.exports = function () {
+       var map;
+       if (typeof WeakMap !== 'function') return false;
+       map = new WeakMap();
+       if (typeof map.set !== 'function') return false;
+       if (map.set({}, 1) !== map) return false;
+       if (typeof map.clear !== 'function') return false;
+       if (typeof map.delete !== 'function') return false;
+       if (typeof map.has !== 'function') return false;
+
+       return true;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/is-native-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/is-native-implemented.js
new file mode 100644 (file)
index 0000000..b3fe5a5
--- /dev/null
@@ -0,0 +1,10 @@
+// Exports true if environment provides native `WeakMap` implementation,
+// whatever that is.
+
+'use strict';
+
+module.exports = (function () {
+       if (typeof WeakMap === 'undefined') return false;
+       return (Object.prototype.toString.call(WeakMap.prototype) ===
+                       '[object WeakMap]');
+}());
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/is-weak-map.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/is-weak-map.js
new file mode 100644 (file)
index 0000000..10bb2a1
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+var toStringTagSymbol = require('es6-symbol').toStringTag
+
+  , toString = Object.prototype.toString
+  , id = '[object WeakMap]'
+  , Global = (typeof WeakMap === 'undefined') ? null : WeakMap;
+
+module.exports = function (x) {
+       return (x && ((Global && (x instanceof Global)) ||
+                       (toString.call(x) === id) || (x[toStringTagSymbol] === 'WeakMap'))) ||
+                       false;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/.lint b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/.lint
new file mode 100644 (file)
index 0000000..858b753
--- /dev/null
@@ -0,0 +1,12 @@
+@root
+
+es5
+module
+
+tabs
+indent 2
+maxlen 80
+
+ass
+nomen
+plusplus
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/.npmignore b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/.npmignore
new file mode 100644 (file)
index 0000000..155e41f
--- /dev/null
@@ -0,0 +1,4 @@
+.DS_Store
+/node_modules
+/npm-debug.log
+/.lintcache
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/.travis.yml b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/.travis.yml
new file mode 100644 (file)
index 0000000..50008b2
--- /dev/null
@@ -0,0 +1,9 @@
+language: node_js
+node_js:
+  - 0.8
+  - 0.10
+  - 0.11
+
+notifications:
+  email:
+    - medikoo+d@medikoo.com
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/CHANGES b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/CHANGES
new file mode 100644 (file)
index 0000000..45233f7
--- /dev/null
@@ -0,0 +1,7 @@
+v0.1.1  --  2014.04.24
+- Add `autoBind` and `lazy` utilities
+- Allow to pass other options to be merged onto created descriptor.
+  Useful when used with other custom utilties
+
+v0.1.0  --  2013.06.20
+Initial (derived from es5-ext project)
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/LICENCE b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/LICENCE
new file mode 100644 (file)
index 0000000..aaf3528
--- /dev/null
@@ -0,0 +1,19 @@
+Copyright (C) 2013 Mariusz Nowak (www.medikoo.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/README.md b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/README.md
new file mode 100644 (file)
index 0000000..872d493
--- /dev/null
@@ -0,0 +1,108 @@
+# D - Property descriptor factory
+
+_Originally derived from [es5-ext](https://github.com/medikoo/es5-ext) package._
+
+Defining properties with descriptors is very verbose:
+
+```javascript
+var Account = function () {};
+Object.defineProperties(Account.prototype, {
+  deposit: { value: function () {
+      /* ... */
+    }, configurable: true, enumerable: false, writable: true },
+  whithdraw: { value: function () {
+      /* ... */
+    }, configurable: true, enumerable: false, writable: true },
+  balance: { get: function () {
+      /* ... */
+    }, configurable: true, enumerable: false }
+});
+```
+
+D cuts that to:
+
+```javascript
+var d = require('d');
+
+var Account = function () {};
+Object.defineProperties(Account.prototype, {
+  deposit: d(function () {
+    /* ... */
+  }),
+  whithdraw: d(function () {
+    /* ... */
+  }),
+  balance: d.gs(function () {
+    /* ... */
+  })
+});
+```
+
+By default, created descriptor follow characteristics of native ES5 properties, and defines values as:
+
+```javascript
+{ configurable: true, enumerable: false, writable: true }
+```
+
+You can overwrite it by preceding _value_ argument with instruction:
+```javascript
+d('c', value); // { configurable: true, enumerable: false, writable: false }
+d('ce', value); // { configurable: true, enumerable: true, writable: false }
+d('e', value); // { configurable: false, enumerable: true, writable: false }
+
+// Same way for get/set:
+d.gs('e', value); // { configurable: false, enumerable: true }
+```
+
+### Other utilities
+
+#### autoBind(obj, props) _(d/auto-bind)_
+
+Define methods which will be automatically bound to its instances
+
+```javascript
+var d = require('d');
+var autoBind = require('d/auto-bind');
+
+var Foo = function () { this._count = 0; };
+autoBind(Foo.prototype, {
+  increment: d(function () { ++this._count; });
+});
+
+var foo = new Foo();
+
+// Increment foo counter on each domEl click
+domEl.addEventListener('click', foo.increment, false);
+```
+
+#### lazy(obj, props) _(d/lazy)_
+
+Define lazy properties, which will be resolved on first access
+
+```javascript
+var d = require('d');
+var lazy = require('d/lazy');
+
+var Foo = function () {};
+lazy(Foo.prototype, {
+  items: d(function () { return []; })
+});
+
+var foo = new Foo();
+foo.items.push(1, 2); // foo.items array created
+```
+
+## Installation
+### NPM
+
+In your project path:
+
+       $ npm install d
+
+### Browser
+
+You can easily bundle _D_ for browser with [modules-webmake](https://github.com/medikoo/modules-webmake)
+
+## Tests [![Build Status](https://travis-ci.org/medikoo/d.png)](https://travis-ci.org/medikoo/d)
+
+       $ npm test
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/auto-bind.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/auto-bind.js
new file mode 100644 (file)
index 0000000..1b00dba
--- /dev/null
@@ -0,0 +1,31 @@
+'use strict';
+
+var copy       = require('es5-ext/object/copy')
+  , map        = require('es5-ext/object/map')
+  , callable   = require('es5-ext/object/valid-callable')
+  , validValue = require('es5-ext/object/valid-value')
+
+  , bind = Function.prototype.bind, defineProperty = Object.defineProperty
+  , hasOwnProperty = Object.prototype.hasOwnProperty
+  , define;
+
+define = function (name, desc, bindTo) {
+       var value = validValue(desc) && callable(desc.value), dgs;
+       dgs = copy(desc);
+       delete dgs.writable;
+       delete dgs.value;
+       dgs.get = function () {
+               if (hasOwnProperty.call(this, name)) return value;
+               desc.value = bind.call(value, (bindTo == null) ? this : this[bindTo]);
+               defineProperty(this, name, desc);
+               return this[name];
+       };
+       return dgs;
+};
+
+module.exports = function (props/*, bindTo*/) {
+       var bindTo = arguments[1];
+       return map(props, function (desc, name) {
+               return define(name, desc, bindTo);
+       });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/index.js
new file mode 100644 (file)
index 0000000..076ae46
--- /dev/null
@@ -0,0 +1,63 @@
+'use strict';
+
+var assign        = require('es5-ext/object/assign')
+  , normalizeOpts = require('es5-ext/object/normalize-options')
+  , isCallable    = require('es5-ext/object/is-callable')
+  , contains      = require('es5-ext/string/#/contains')
+
+  , d;
+
+d = module.exports = function (dscr, value/*, options*/) {
+       var c, e, w, options, desc;
+       if ((arguments.length < 2) || (typeof dscr !== 'string')) {
+               options = value;
+               value = dscr;
+               dscr = null;
+       } else {
+               options = arguments[2];
+       }
+       if (dscr == null) {
+               c = w = true;
+               e = false;
+       } else {
+               c = contains.call(dscr, 'c');
+               e = contains.call(dscr, 'e');
+               w = contains.call(dscr, 'w');
+       }
+
+       desc = { value: value, configurable: c, enumerable: e, writable: w };
+       return !options ? desc : assign(normalizeOpts(options), desc);
+};
+
+d.gs = function (dscr, get, set/*, options*/) {
+       var c, e, options, desc;
+       if (typeof dscr !== 'string') {
+               options = set;
+               set = get;
+               get = dscr;
+               dscr = null;
+       } else {
+               options = arguments[3];
+       }
+       if (get == null) {
+               get = undefined;
+       } else if (!isCallable(get)) {
+               options = get;
+               get = set = undefined;
+       } else if (set == null) {
+               set = undefined;
+       } else if (!isCallable(set)) {
+               options = set;
+               set = undefined;
+       }
+       if (dscr == null) {
+               c = true;
+               e = false;
+       } else {
+               c = contains.call(dscr, 'c');
+               e = contains.call(dscr, 'e');
+       }
+
+       desc = { get: get, set: set, configurable: c, enumerable: e };
+       return !options ? desc : assign(normalizeOpts(options), desc);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/lazy.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/lazy.js
new file mode 100644 (file)
index 0000000..61e4665
--- /dev/null
@@ -0,0 +1,111 @@
+'use strict';
+
+var map        = require('es5-ext/object/map')
+  , isCallable = require('es5-ext/object/is-callable')
+  , validValue = require('es5-ext/object/valid-value')
+  , contains   = require('es5-ext/string/#/contains')
+
+  , call = Function.prototype.call
+  , defineProperty = Object.defineProperty
+  , getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor
+  , getPrototypeOf = Object.getPrototypeOf
+  , hasOwnProperty = Object.prototype.hasOwnProperty
+  , cacheDesc = { configurable: false, enumerable: false, writable: false,
+               value: null }
+  , define;
+
+define = function (name, options) {
+       var value, dgs, cacheName, desc, writable = false, resolvable
+         , flat;
+       options = Object(validValue(options));
+       cacheName = options.cacheName;
+       flat = options.flat;
+       if (cacheName == null) cacheName = name;
+       delete options.cacheName;
+       value = options.value;
+       resolvable = isCallable(value);
+       delete options.value;
+       dgs = { configurable: Boolean(options.configurable),
+               enumerable: Boolean(options.enumerable) };
+       if (name !== cacheName) {
+               dgs.get = function () {
+                       if (hasOwnProperty.call(this, cacheName)) return this[cacheName];
+                       cacheDesc.value = resolvable ? call.call(value, this, options) : value;
+                       cacheDesc.writable = writable;
+                       defineProperty(this, cacheName, cacheDesc);
+                       cacheDesc.value = null;
+                       if (desc) defineProperty(this, name, desc);
+                       return this[cacheName];
+               };
+       } else if (!flat) {
+               dgs.get = function self() {
+                       var ownDesc;
+                       if (hasOwnProperty.call(this, name)) {
+                               ownDesc = getOwnPropertyDescriptor(this, name);
+                               // It happens in Safari, that getter is still called after property
+                               // was defined with a value, following workarounds that
+                               if (ownDesc.hasOwnProperty('value')) return ownDesc.value;
+                               if ((typeof ownDesc.get === 'function') && (ownDesc.get !== self)) {
+                                       return ownDesc.get.call(this);
+                               }
+                               return value;
+                       }
+                       desc.value = resolvable ? call.call(value, this, options) : value;
+                       defineProperty(this, name, desc);
+                       desc.value = null;
+                       return this[name];
+               };
+       } else {
+               dgs.get = function self() {
+                       var base = this, ownDesc;
+                       if (hasOwnProperty.call(this, name)) {
+                               // It happens in Safari, that getter is still called after property
+                               // was defined with a value, following workarounds that
+                               ownDesc = getOwnPropertyDescriptor(this, name);
+                               if (ownDesc.hasOwnProperty('value')) return ownDesc.value;
+                               if ((typeof ownDesc.get === 'function') && (ownDesc.get !== self)) {
+                                       return ownDesc.get.call(this);
+                               }
+                       }
+                       while (!hasOwnProperty.call(base, name)) base = getPrototypeOf(base);
+                       desc.value = resolvable ? call.call(value, base, options) : value;
+                       defineProperty(base, name, desc);
+                       desc.value = null;
+                       return base[name];
+               };
+       }
+       dgs.set = function (value) {
+               dgs.get.call(this);
+               this[cacheName] = value;
+       };
+       if (options.desc) {
+               desc = {
+                       configurable: contains.call(options.desc, 'c'),
+                       enumerable: contains.call(options.desc, 'e')
+               };
+               if (cacheName === name) {
+                       desc.writable = contains.call(options.desc, 'w');
+                       desc.value = null;
+               } else {
+                       writable = contains.call(options.desc, 'w');
+                       desc.get = dgs.get;
+                       desc.set = dgs.set;
+               }
+               delete options.desc;
+       } else if (cacheName === name) {
+               desc = {
+                       configurable: Boolean(options.configurable),
+                       enumerable: Boolean(options.enumerable),
+                       writable: Boolean(options.writable),
+                       value: null
+               };
+       }
+       delete options.configurable;
+       delete options.enumerable;
+       delete options.writable;
+       return dgs;
+};
+
+module.exports = function (props) {
+       return map(props, function (desc, name) { return define(name, desc); });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/package.json b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/package.json
new file mode 100644 (file)
index 0000000..03d81db
--- /dev/null
@@ -0,0 +1,59 @@
+{
+  "name": "d",
+  "version": "0.1.1",
+  "description": "Property descriptor factory",
+  "author": {
+    "name": "Mariusz Nowak",
+    "email": "medyk@medikoo.com",
+    "url": "http://www.medikoo.com/"
+  },
+  "scripts": {
+    "test": "node node_modules/tad/bin/tad"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/medikoo/d.git"
+  },
+  "keywords": [
+    "descriptor",
+    "es",
+    "ecmascript",
+    "ecma",
+    "property",
+    "descriptors",
+    "meta",
+    "properties"
+  ],
+  "dependencies": {
+    "es5-ext": "~0.10.2"
+  },
+  "devDependencies": {
+    "tad": "~0.1.21"
+  },
+  "license": "MIT",
+  "bugs": {
+    "url": "https://github.com/medikoo/d/issues"
+  },
+  "homepage": "https://github.com/medikoo/d",
+  "_id": "d@0.1.1",
+  "dist": {
+    "shasum": "da184c535d18d8ee7ba2aa229b914009fae11309",
+    "tarball": "http://registry.npmjs.org/d/-/d-0.1.1.tgz"
+  },
+  "_from": "d@>=0.1.1 <0.2.0",
+  "_npmVersion": "1.4.3",
+  "_npmUser": {
+    "name": "medikoo",
+    "email": "medikoo+npm@medikoo.com"
+  },
+  "maintainers": [
+    {
+      "name": "medikoo",
+      "email": "medikoo+npm@medikoo.com"
+    }
+  ],
+  "directories": {},
+  "_shasum": "da184c535d18d8ee7ba2aa229b914009fae11309",
+  "_resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+  "readme": "ERROR: No README data found!"
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/test/auto-bind.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/test/auto-bind.js
new file mode 100644 (file)
index 0000000..89edfb8
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+var d = require('../');
+
+module.exports = function (t, a) {
+       var o = Object.defineProperties({}, t({
+               bar: d(function () { return this === o; }),
+               bar2: d(function () { return this; })
+       }));
+
+       a.deep([(o.bar)(), (o.bar2)()], [true, o]);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/test/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/test/index.js
new file mode 100644 (file)
index 0000000..3db0af1
--- /dev/null
@@ -0,0 +1,182 @@
+'use strict';
+
+var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+
+module.exports = function (t, a) {
+       var o, c, cg, cs, ce, ceg, ces, cew, cw, e, eg, es, ew, v, vg, vs, w, df, dfg
+         , dfs;
+
+       o = Object.create(Object.prototype, {
+               c: t('c', c = {}),
+               cgs: t.gs('c', cg = function () {}, cs = function () {}),
+               ce: t('ce', ce = {}),
+               cegs: t.gs('ce', ceg = function () {}, ces = function () {}),
+               cew: t('cew', cew = {}),
+               cw: t('cw', cw = {}),
+               e: t('e', e = {}),
+               egs: t.gs('e', eg = function () {}, es = function () {}),
+               ew: t('ew', ew = {}),
+               v: t('', v = {}),
+               vgs: t.gs('', vg = function () {}, vs = function () {}),
+               w: t('w', w = {}),
+
+               df: t(df = {}),
+               dfgs: t.gs(dfg = function () {}, dfs = function () {})
+       });
+
+       return {
+               c: function (a) {
+                       var d = getOwnPropertyDescriptor(o, 'c');
+                       a(d.value, c, "Value");
+                       a(d.get, undefined, "Get");
+                       a(d.set, undefined, "Set");
+                       a(d.configurable, true, "Configurable");
+                       a(d.enumerable, false, "Enumerable");
+                       a(d.writable, false, "Writable");
+
+                       d = getOwnPropertyDescriptor(o, 'cgs');
+                       a(d.value, undefined, "GS Value");
+                       a(d.get, cg, "GS Get");
+                       a(d.set, cs, "GS Set");
+                       a(d.configurable, true, "GS Configurable");
+                       a(d.enumerable, false, "GS Enumerable");
+                       a(d.writable, undefined, "GS Writable");
+               },
+               ce: function (a) {
+                       var d = getOwnPropertyDescriptor(o, 'ce');
+                       a(d.value, ce, "Value");
+                       a(d.get, undefined, "Get");
+                       a(d.set, undefined, "Set");
+                       a(d.configurable, true, "Configurable");
+                       a(d.enumerable, true, "Enumerable");
+                       a(d.writable, false, "Writable");
+
+                       d = getOwnPropertyDescriptor(o, 'cegs');
+                       a(d.value, undefined, "GS Value");
+                       a(d.get, ceg, "GS Get");
+                       a(d.set, ces, "GS Set");
+                       a(d.configurable, true, "GS Configurable");
+                       a(d.enumerable, true, "GS Enumerable");
+                       a(d.writable, undefined, "GS Writable");
+               },
+               cew: function (a) {
+                       var d = getOwnPropertyDescriptor(o, 'cew');
+                       a(d.value, cew, "Value");
+                       a(d.get, undefined, "Get");
+                       a(d.set, undefined, "Set");
+                       a(d.configurable, true, "Configurable");
+                       a(d.enumerable, true, "Enumerable");
+                       a(d.writable, true, "Writable");
+               },
+               cw: function (a) {
+                       var d = getOwnPropertyDescriptor(o, 'cw');
+                       a(d.value, cw, "Value");
+                       a(d.get, undefined, "Get");
+                       a(d.set, undefined, "Set");
+                       a(d.configurable, true, "Configurable");
+                       a(d.enumerable, false, "Enumerable");
+                       a(d.writable, true, "Writable");
+               },
+               e: function (a) {
+                       var d = getOwnPropertyDescriptor(o, 'e');
+                       a(d.value, e, "Value");
+                       a(d.get, undefined, "Get");
+                       a(d.set, undefined, "Set");
+                       a(d.configurable, false, "Configurable");
+                       a(d.enumerable, true, "Enumerable");
+                       a(d.writable, false, "Writable");
+
+                       d = getOwnPropertyDescriptor(o, 'egs');
+                       a(d.value, undefined, "GS Value");
+                       a(d.get, eg, "GS Get");
+                       a(d.set, es, "GS Set");
+                       a(d.configurable, false, "GS Configurable");
+                       a(d.enumerable, true, "GS Enumerable");
+                       a(d.writable, undefined, "GS Writable");
+               },
+               ew: function (a) {
+                       var d = getOwnPropertyDescriptor(o, 'ew');
+                       a(d.value, ew, "Value");
+                       a(d.get, undefined, "Get");
+                       a(d.set, undefined, "Set");
+                       a(d.configurable, false, "Configurable");
+                       a(d.enumerable, true, "Enumerable");
+                       a(d.writable, true, "Writable");
+               },
+               v: function (a) {
+                       var d = getOwnPropertyDescriptor(o, 'v');
+                       a(d.value, v, "Value");
+                       a(d.get, undefined, "Get");
+                       a(d.set, undefined, "Set");
+                       a(d.configurable, false, "Configurable");
+                       a(d.enumerable, false, "Enumerable");
+                       a(d.writable, false, "Writable");
+
+                       d = getOwnPropertyDescriptor(o, 'vgs');
+                       a(d.value, undefined, "GS Value");
+                       a(d.get, vg, "GS Get");
+                       a(d.set, vs, "GS Set");
+                       a(d.configurable, false, "GS Configurable");
+                       a(d.enumerable, false, "GS Enumerable");
+                       a(d.writable, undefined, "GS Writable");
+               },
+               w: function (a) {
+                       var d = getOwnPropertyDescriptor(o, 'w');
+                       a(d.value, w, "Value");
+                       a(d.get, undefined, "Get");
+                       a(d.set, undefined, "Set");
+                       a(d.configurable, false, "Configurable");
+                       a(d.enumerable, false, "Enumerable");
+                       a(d.writable, true, "Writable");
+               },
+               d: function (a) {
+                       var d = getOwnPropertyDescriptor(o, 'df');
+                       a(d.value, df, "Value");
+                       a(d.get, undefined, "Get");
+                       a(d.set, undefined, "Set");
+                       a(d.configurable, true, "Configurable");
+                       a(d.enumerable, false, "Enumerable");
+                       a(d.writable, true, "Writable");
+
+                       d = getOwnPropertyDescriptor(o, 'dfgs');
+                       a(d.value, undefined, "GS Value");
+                       a(d.get, dfg, "GS Get");
+                       a(d.set, dfs, "GS Set");
+                       a(d.configurable, true, "GS Configurable");
+                       a(d.enumerable, false, "GS Enumerable");
+                       a(d.writable, undefined, "GS Writable");
+               },
+               Options: {
+                       v: function (a) {
+                               var x = {}, d = t(x, { foo: true });
+                               a.deep(d, { configurable: true, enumerable: false, writable: true,
+                                       value: x, foo: true }, "No descriptor");
+                               d = t('c', 'foo', { marko: 'elo' });
+                               a.deep(d, { configurable: true, enumerable: false, writable: false,
+                                       value: 'foo', marko: 'elo' }, "Descriptor");
+                       },
+                       gs: function (a) {
+                               var gFn = function () {}, sFn = function () {}, d;
+                               d = t.gs(gFn, sFn, { foo: true });
+                               a.deep(d, { configurable: true, enumerable: false, get: gFn, set: sFn,
+                                       foo: true }, "No descriptor");
+                               d = t.gs(null, sFn, { foo: true });
+                               a.deep(d, { configurable: true, enumerable: false, get: undefined,
+                                       set: sFn, foo: true }, "No descriptor: Just set");
+                               d = t.gs(gFn, { foo: true });
+                               a.deep(d, { configurable: true, enumerable: false, get: gFn,
+                                       set: undefined, foo: true }, "No descriptor: Just get");
+
+                               d = t.gs('e', gFn, sFn, { bar: true });
+                               a.deep(d, { configurable: false, enumerable: true, get: gFn, set: sFn,
+                                       bar: true }, "Descriptor");
+                               d = t.gs('e', null, sFn, { bar: true });
+                               a.deep(d, { configurable: false, enumerable: true, get: undefined,
+                                       set: sFn, bar: true }, "Descriptor: Just set");
+                               d = t.gs('e', gFn, { bar: true });
+                               a.deep(d, { configurable: false, enumerable: true, get: gFn,
+                                       set: undefined, bar: true }, "Descriptor: Just get");
+                       }
+               }
+       };
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/test/lazy.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/test/lazy.js
new file mode 100644 (file)
index 0000000..8266deb
--- /dev/null
@@ -0,0 +1,77 @@
+'use strict';
+
+var d = require('../')
+
+  , getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+
+module.exports = function (t, a) {
+       var Foo = function () {}, i = 1, o, o2, desc;
+       Object.defineProperties(Foo.prototype, t({
+               bar: d(function () { return ++i; }),
+               bar2: d(function () { return this.bar + 23; }),
+               bar3: d(function () { return this.bar2 + 34; }, { desc: 'ew' }),
+               bar4: d(function () { return this.bar3 + 12; }, { cacheName: '_bar4_' }),
+               bar5: d(function () { return this.bar4 + 3; },
+                       { cacheName: '_bar5_', desc: 'e' })
+       }));
+
+       desc = getOwnPropertyDescriptor(Foo.prototype, 'bar');
+       a(desc.configurable, true, "Configurable: default");
+       a(desc.enumerable, false, "Enumerable: default");
+
+       o = new Foo();
+       a.deep([o.bar, o.bar2, o.bar3, o.bar4, o.bar5], [2, 25, 59, 71, 74],
+               "Values");
+
+       a.deep(getOwnPropertyDescriptor(o, 'bar3'), { configurable: false,
+               enumerable: true, writable: true, value: 59 }, "Desc");
+       a(o.hasOwnProperty('bar4'), false, "Cache not exposed");
+       desc = getOwnPropertyDescriptor(o, 'bar5');
+       a.deep(desc, { configurable: false,
+               enumerable: true, get: desc.get, set: desc.set }, "Cache & Desc: desc");
+
+       o2 = Object.create(o);
+       o2.bar = 30;
+       o2.bar3 = 100;
+
+       a.deep([o2.bar, o2.bar2, o2.bar3, o2.bar4, o2.bar5], [30, 25, 100, 112, 115],
+               "Extension Values");
+
+       Foo = function () {};
+       Object.defineProperties(Foo.prototype, t({
+               test: d('w', function () { return 'raz'; }),
+               test2: d('', function () { return 'raz'; }, { desc: 'w' }),
+               test3: d('', function () { return 'raz'; },
+                       { cacheName: '__test3__', desc: 'w' }),
+               test4: d('w', 'bar')
+       }));
+
+       o = new Foo();
+       o.test = 'marko';
+       a.deep(getOwnPropertyDescriptor(o, 'test'),
+               { configurable: false, enumerable: false, writable: true, value: 'marko' },
+               "Set before get");
+       o.test2 = 'marko2';
+       a.deep(getOwnPropertyDescriptor(o, 'test2'),
+               { configurable: false, enumerable: false, writable: true, value: 'marko2' },
+               "Set before get: Custom desc");
+       o.test3 = 'marko3';
+       a.deep(getOwnPropertyDescriptor(o, '__test3__'),
+               { configurable: false, enumerable: false, writable: true, value: 'marko3' },
+               "Set before get: Custom cache name");
+       a(o.test4, 'bar', "Resolve by value");
+
+       a.h1("Flat");
+       Object.defineProperties(Foo.prototype, t({
+               flat: d(function () { return 'foo'; }, { flat: true }),
+               flat2: d(function () { return 'bar'; }, { flat: true })
+       }));
+
+       a.h2("Instance");
+       a(o.flat, 'foo', "Value");
+       a(o.hasOwnProperty('flat'), false, "Instance");
+       a(Foo.prototype.flat, 'foo', "Prototype");
+
+       a.h2("Direct");
+       a(Foo.prototype.flat2, 'bar');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/.lint b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/.lint
new file mode 100644 (file)
index 0000000..d1da610
--- /dev/null
@@ -0,0 +1,38 @@
+@root
+
+module
+
+indent 2
+maxlen 100
+tabs
+
+ass
+continue
+forin
+nomen
+plusplus
+vars
+
+./global.js
+./function/_define-length.js
+./function/#/copy.js
+./object/unserialize.js
+./test/function/valid-function.js
+evil
+
+./math/_pack-ieee754.js
+./math/_unpack-ieee754.js
+./math/clz32/shim.js
+./math/imul/shim.js
+./number/to-uint32.js
+./string/#/at.js
+bitwise
+
+./math/fround/shim.js
+predef+ Float32Array
+
+./object/first-key.js
+forin
+
+./test/reg-exp/#/index.js
+predef+ __dirname
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/.lintignore b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/.lintignore
new file mode 100644 (file)
index 0000000..ed703ed
--- /dev/null
@@ -0,0 +1,8 @@
+/string/#/normalize/_data.js
+/test/boolean/is-boolean.js
+/test/date/is-date.js
+/test/number/is-number.js
+/test/object/is-copy.js
+/test/object/is-object.js
+/test/reg-exp/is-reg-exp.js
+/test/string/is-string.js
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/.npmignore b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/.npmignore
new file mode 100644 (file)
index 0000000..eb09b50
--- /dev/null
@@ -0,0 +1,4 @@
+.DS_Store
+/node_modules
+/.lintcache
+/npm-debug.log
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/.travis.yml b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/.travis.yml
new file mode 100644 (file)
index 0000000..a183dbc
--- /dev/null
@@ -0,0 +1,15 @@
+sudo: false # http://docs.travis-ci.com/user/workers/container-based-infrastructure/
+language: node_js
+node_js:
+  - 0.10
+  - 0.12
+  - iojs
+
+before_install:
+  - mkdir node_modules; ln -s ../ node_modules/es5-ext
+
+notifications:
+  email:
+    - medikoo+es5-ext@medikoo.com
+
+script: "npm test && npm run lint"
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/CHANGES b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/CHANGES
new file mode 100644 (file)
index 0000000..5d0ace5
--- /dev/null
@@ -0,0 +1,611 @@
+v0.10.7  --  2015.04.22
+* New utlitities. They're convention differs from v0.10, as they were supposed to land in v1.
+  Still they're non breaking and start the conventions to be used in v1
+  * Object.validateArrayLike
+  * Object.validateArrayLikeObject
+  * Object.validateStringifiable
+  * Object.validateStringifiableValue
+  * Universal utilities for array-like/iterable objects
+    * Iterable.is
+    * Iterable.validate
+    * Iterable.validateObject
+    * Iterable.forEach
+* Fix camelToHyphen resolution, it must be absolutely reversable by hyphenToCamel
+* Fix calculations of large numbers in Math.tanh
+* Fix algorithm of Math.sinh
+* Fix indexes to not use real symbols
+* Fix length of String.fromCodePoint
+* Fix tests of Array#copyWithin
+* Update Travis CI configuration
+
+v0.10.6  --  2015.02.02
+* Fix handling of infinite values in Math.trunc
+* Fix handling of getters in Object.normalizeOptions
+
+v0.10.5  --  2015.01.20
+* Add Function#toStringTokens
+* Add Object.serialize and Object.unserialize
+* Add String.randomUniq
+* Fix Strin#camelToHyphen issue with tokens that end with digit
+* Optimise Number.isInteger logic
+* Improve documentation
+* Configure lint scripts
+* Fix spelling of LICENSE
+
+v0.10.4  --  2014.04.30
+* Assure maximum spec compliance of Array.of and Array.from (thanks @mathiasbynens)
+* Improve documentations
+
+v0.10.3  --  2014.04.29
+Provide accurate iterators handling:
+* Array.from improvements:
+  * Assure right unicode symbols resolution when processing strings in Array.from
+  * Rely on ES6 symbol shim and use native @@iterator Symbol if provided by environment
+* Add methods:
+  * Array.prototype.entries
+  * Array.prototype.keys
+  * Array.prototype.values
+  * Array.prototype[@@iterator]
+  * String.prototype[@@iterator]
+
+Improve documentation
+
+v0.10.2  --  2014.04.24
+- Simplify and deprecate `isCallable`. It seems in ES5 based engines there are
+  no callable objects which are `typeof obj !== 'function'`
+- Update Array.from map callback signature (up to latest resolution of TC39)
+- Improve documentation
+
+v0.10.1  --  2014.04.14
+Bump version for npm
+(Workaround for accidental premature publish & unpublish of v0.10.0 a while ago)
+
+v0.10.0  --  2014.04.13
+Major update:
+- All methods and function specified for ECMAScript 6 are now introduced as
+  shims accompanied with functions through which (optionally) they can be
+  implementend on native objects
+- Filename convention was changed to shorter and strictly lower case names. e.g.
+  `lib/String/prototype/starts-with` became `string/#/starts-with`
+- Generated functions are guaranteed to have expected length
+- Objects with null prototype (created via `Object.create(null)`) are widely
+  supported (older version have crashed due to implied `obj.hasOwnProperty` and
+  related invocations)
+- Support array subclasses
+- When handling lists do not limit its length to Uint32 range
+- Use newly introduced `Object.eq` for strict equality in place of `Object.is`
+- Iteration of Object have been improved so properties that were hidden or
+  removed after iteration started are not iterated.
+
+Additions:
+- `Array.isPlainArray`
+- `Array.validArray`
+- `Array.prototype.concat` (as updated with ES6)
+- `Array.prototype.copyWithin` (as introduced with ES6)
+- `Array.prototype.fill` (as introduced with ES6)
+- `Array.prototype.filter` (as updated with ES6)
+- `Array.prototype.findIndex` (as introduced with ES6)
+- `Array.prototype.map` (as updated with ES6)
+- `Array.prototype.separate`
+- `Array.prototype.slice` (as updated with ES6)
+- `Array.prototype.splice` (as updated with ES6)
+- `Function.prototype.copy`
+- `Math.acosh` (as introduced with ES6)
+- `Math.atanh` (as introduced with ES6)
+- `Math.cbrt` (as introduced with ES6)
+- `Math.clz32` (as introduced with ES6)
+- `Math.cosh` (as introduced with ES6)
+- `Math.expm1` (as introduced with ES6)
+- `Math.fround` (as introduced with ES6)
+- `Math.hypot` (as introduced with ES6)
+- `Math.imul` (as introduced with ES6)
+- `Math.log2` (as introduced with ES6)
+- `Math.log10` (as introduced with ES6)
+- `Math.log1p` (as introduced with ES6)
+- `Math.sinh` (as introduced with ES6)
+- `Math.tanh` (as introduced with ES6)
+- `Math.trunc` (as introduced with ES6)
+- `Number.EPSILON` (as introduced with ES6)
+- `Number.MIN_SAFE_INTEGER` (as introduced with ES6)
+- `Number.MAX_SAFE_INTEGER` (as introduced with ES6)
+- `Number.isFinite` (as introduced with ES6)
+- `Number.isInteger` (as introduced with ES6)
+- `Number.isSafeInteger` (as introduced with ES6)
+- `Object.create` (with fix for V8 issue which disallows prototype turn of
+  objects derived from null
+- `Object.eq` - Less restrictive version of `Object.is` based on SameValueZero
+  algorithm
+- `Object.firstKey`
+- `Object.keys` (as updated with ES6)
+- `Object.mixinPrototypes`
+- `Object.primitiveSet`
+- `Object.setPrototypeOf` (as introduced with ES6)
+- `Object.validObject`
+- `RegExp.escape`
+- `RegExp.prototype.match` (as introduced with ES6)
+- `RegExp.prototype.replace` (as introduced with ES6)
+- `RegExp.prototype.search` (as introduced with ES6)
+- `RegExp.prototype.split` (as introduced with ES6)
+- `RegExp.prototype.sticky` (as introduced with ES6)
+- `RegExp.prototype.unicode` (as introduced with ES6)
+- `String.fromCodePoint` (as introduced with ES6)
+- `String.raw` (as introduced with ES6)
+- `String.prototype.at`
+- `String.prototype.codePointAt` (as introduced with ES6)
+- `String.prototype.normalize` (as introduced with ES6)
+- `String.prototype.plainReplaceAll`
+
+Removals:
+- `reserved` set
+- `Array.prototype.commonLeft`
+- `Function.insert`
+- `Function.remove`
+- `Function.prototype.silent`
+- `Function.prototype.wrap`
+- `Object.descriptor` Move to external `d` project.
+  See: https://github.com/medikoo/d
+- `Object.diff`
+- `Object.extendDeep`
+- `Object.reduce`
+- `Object.values`
+- `String.prototype.trimCommonLeft`
+
+Renames:
+- `Function.i` into `Function.identity`
+- `Function.k` into `Function.constant`
+- `Number.toInt` into `Number.toInteger`
+- `Number.toUint` into `Number.toPosInteger`
+- `Object.extend` into `Object.assign` (as introduced in ES 6)
+- `Object.extendProperties` into `Object.mixin`, with improved internal
+  handling, so it matches temporarily specified `Object.mixin` for ECMAScript 6
+- `Object.isList` into `Object.isArrayLike`
+- `Object.mapToArray` into `Object.toArray` (with fixed function length)
+- `Object.toPlainObject` into `Object.normalizeOptions` (as this is the real
+  use case where we use this function)
+- `Function.prototype.chain` into `Function.prototype.compose`
+- `Function.prototype.match` into `Function.prototype.spread`
+- `String.prototype.format` into `String.formatMethod`
+
+Improvements & Fixes:
+- Remove workaround for primitive values handling in object iterators
+- `Array.from`: Update so it follows ES 6 spec
+- `Array.prototype.compact`: filters just null and undefined values
+  (not all falsies)
+- `Array.prototype.eIndexOf` and `Array.prototype.eLastIndexOf`: fix position
+  handling, improve internals
+- `Array.prototype.find`: return undefined not null, in case of not found
+  (follow ES 6)
+- `Array.prototype.remove` fix function length
+- `Error.custom`: simplify, Custom class case is addressed by outer
+  `error-create` project -> https://github.com/medikoo/error-create
+- `Error.isError` true only for Error instances (remove detection of host
+  Exception objects)
+- `Number.prototype.pad`: Normalize negative pad
+- `Object.clear`: Handle errors same way as in `Object.assign`
+- `Object.compact`: filters just null and undefined values (not all falsies)
+- `Object.compare`: Take into account NaN values
+- `Object.copy`: Split into `Object.copy` and `Object.copyDeep`
+- `Object.isCopy`: Separate into `Object.isCopy` and `Object.isCopyDeep`, where
+  `isCopyDeep` handles nested plain objects and plain arrays only
+- `String.prototype.endsWith`: Adjust up to ES6 specification
+- `String.prototype.repeat`: Adjust up to ES6 specification and improve algorithm
+- `String.prototype.simpleReplace`: Rename into `String.prototype.plainReplace`
+- `String.prototype.startsWith`: Adjust up to ES6 specification
+- Update lint rules, and adjust code to that
+- Update Travis CI configuration
+- Remove Makefile (it's cross-env utility)
+
+v0.9.2  --  2013.03.11
+Added:
+* Array.prototype.isCopy
+* Array.prototype.isUniq
+* Error.CustomError
+* Function.validFunction
+* Object.extendDeep
+* Object.descriptor.binder
+* Object.safeTraverse
+* RegExp.validRegExp
+* String.prototype.capitalize
+* String.prototype.simpleReplace
+
+Fixed:
+* Fix Array.prototype.diff for sparse arrays
+* Accept primitive objects as input values in Object iteration methods and
+  Object.clear, Object.count, Object.diff, Object.extend,
+  Object.getPropertyNames, Object.values
+* Pass expected arguments to callbacks of Object.filter, Object.mapKeys,
+  Object.mapToArray, Object.map
+* Improve callable callback support in Object.mapToArray
+
+v0.9.1  --  2012.09.17
+* Object.reduce - reduce for hash-like collections
+* Accapt any callable object as callback in Object.filter, mapKeys and map
+* Convention cleanup
+
+v0.9.0  --  2012.09.13
+We're getting to real solid API
+
+Removed:
+* Function#memoize - it's grown up to be external package, to be soon published
+  as 'memoizee'
+* String.guid - it doesn't fit es5-ext (extensions) concept, will be provided as
+  external package
+# Function.arguments - obsolete
+# Function.context - obsolete
+# Function#flip - not readable when used, so it was never used
+# Object.clone - obsolete and confusing
+
+Added:
+* String#camelToHyphen - String format convertion
+
+Renamed:
+* String#dashToCamelCase -> String#hyphenToCamel
+
+Fixes:
+* Object.isObject - Quote names in literals that match reserved keywords
+  (older implementations crashed on that)
+* String#repeat - Do not accept negative values (coerce them to 1)
+
+Improvements:
+* Array#remove - Accepts many arguments, we can now remove many values at once
+* Object iterators (forEach, map, some) - Compare function invoked with scope
+  object bound to this
+* Function#curry - Algorithm cleanup
+* Object.isCopy - Support for all types, not just plain objects
+* Object.isPlainObject - Support for cross-frame objects
+* Do not memoize any of the functions, it shouldn't be decided internally
+* Remove Object.freeze calls in reserved, it's not up to convention
+* Improved documentation
+* Better linting (hard-core approach using both JSLint mod and JSHint)
+* Optional arguments are now documented in funtions signature
+
+v0.8.2  --  2012.06.22
+Fix errors in Array's intersection and exclusion methods, related to improper
+usage of contains method
+
+v0.8.1  --  2012.06.13
+Reorganized internal logic of Function.prototype.memoize. So it's more safe now
+and clears cache properly. Additionally preventCache option was provided.
+
+v0.8.0  --  2012.05.28
+Again, major overhaul. Probably last experimental stuff was trashed, all API
+looks more like standard extensions now.
+
+Changes:
+* Turn all Object.prototype extensions into functions and move them to Object
+namespace. We learned that extending Object.prototype is bad idea in any case.
+* Rename Function.prototype.curry into Function.prototype.partial. This function
+  is really doing partial application while currying is slightly different
+  concept.
+* Convert Function.prototype.ncurry to new implementation of
+  Function.prototype.curry, it now serves real curry concept additionaly it
+  covers use cases for aritize and hold, which were removed.
+* Rename Array's peek to last, and provide support for sparse arrays in it
+* Rename Date's monthDaysCount into daysInMonth
+* Simplify object iterators, now order of iteration can be configured with just
+  compareFn argument (no extra byKeys option)
+* Rename Object.isDuplicate to Object.isCopy
+* Rename Object.isEqual to Object.is which is compatible with future 'is'
+  keyword
+* Function.memoize is now Function.prototype.memoize. Additionally clear cache
+  functionality is added, and access to original arguments object.
+* Rename validation functions: assertNotNull to validValue, assertCallable to
+  validCallable. validValue was moved to Object namespace. On success they now
+  return validated value instead of true, it supports better composition.
+  Additionally created Date.validDate and Error.validError
+* All documentation is now held in README.md not in code files.
+* Move guid to String namespace. All guids now start with numbers.
+* Array.generate: fill argument is now optional
+* Object.toArray is now Array.from (as new ES6 specification draft suggests)
+* All methods that rely on indexOf or lastIndexOf, now rely on egal (Object.is)
+  versions of them (eIndexOf, eLastIndexOf)
+* Turn all get* functions that returned methods into actuall methods (get*
+  functionality can still be achieved with help of Function.prototype.partial).
+  So: Date.getFormat is now Date.prototype.format,
+  Number.getPad is now Number.prototype.pad,
+  String.getFormat is now String.prototype.format,
+  String.getIndent is now String.prototype.indent,
+  String.getPad is now String.prototype.pad
+* Refactored Object.descriptor, it is now just two functions, main one and
+  main.gs, main is for describing values, and gs for describing getters and
+  setters. Configuration is passed with first argument as string e.g. 'ce' for
+  configurable and enumerable. If no configuration string is provided then by
+  default it returns configurable and writable but not enumerable for value or
+  configurable but not enumerable for getter/setter
+* Function.prototype.silent now returns prepared function (it was
+  expected to be fixed for 0.7)
+* Reserved keywords map (reserved) is now array not hash.
+* Object.merge is now Object.extend (while former Object.extend was completely
+  removed) - 'extend' implies that we change object, not creating new one (as
+  'merge' may imply). Similarily Object.mergeProperties was renamed to
+  Object.extendProperties
+* Position argument support in Array.prototype.contains and
+  String.prototype.contains (so it follows ES6 specification draft)
+* endPosition argument support in String.prototype.endsWith and fromPosition
+  argument support in String.prototype.startsWith (so it follows ES6
+  specification draft)
+* Better and cleaner String.prototype.indent implementation. No default value
+  for indent string argument, optional nest value (defaults to 1), remove
+  nostart argument
+* Correct length values for most methods (so they reflect length of similar
+  methods in standard)
+* Length argument is now optional in number and string pad methods.
+* Improve arguments validation in general, so it adheres to standard conventions
+* Fixed format of package.json
+
+Removed methods and functions:
+* Object.prototype.slice - Object is not ordered collection, so slice doesn't
+  make sense.
+* Function's rcurry, rncurry, s - too cumbersome for JS, not many use cases for
+  that
+* Function.prototype.aritize and Function.prototype.hold - same functionality
+  can be achieved with new Function.prototype.curry
+* Function.prototype.log - provided more generic Function.prototype.wrap for
+  same use case
+* getNextIdGenerator - no use case for that (String.guid should be used if
+  needed)
+* Object.toObject - Can be now acheived with Object(validValue(x))
+* Array.prototype.someValue - no real use case (personally used once and
+  case was already controversial)
+* Date.prototype.duration - moved to external package
+* Number.getAutoincrement - No real use case
+* Object.prototype.extend, Object.prototype.override,
+  Object.prototype.plainCreate, Object.prototype.plainExtend - It was probably
+  too complex, same should be achieved just with Object.create,
+  Object.descriptor and by saving references to super methods in local scope.
+* Object.getCompareBy - Functions should be created individually for each use
+  case
+* Object.get, Object.getSet, Object.set, Object.unset - Not many use cases and
+  same can be easily achieved with simple inline function
+* String.getPrefixWith - Not real use case for something that can be easily
+  achieved with '+' operator
+* Object.isPrimitive - It's just negation of Object.isObject
+* Number.prototype.isLess, Number.prototype.isLessOrEqual - they shouldn't be in
+  Number namespace and should rather be addressed with simple inline functions.
+* Number.prototype.subtract - Should rather be addressed with simple inline
+  function
+
+New methods and functions:
+* Array.prototype.lastIndex - Returns last declared index in array
+* String.prototype.last - last for strings
+* Function.prototype.wrap - Wrap function with other, it allows to specify
+  before and after behavior transform return value or prevent original function
+  from being called.
+* Math.sign - Returns sign of a number (already in ES6 specification draft)
+* Number.toInt - Converts value to integer (already in ES6 specification draft)
+* Number.isNaN - Returns true if value is NaN (already in ES6 specification
+  draft)
+* Number.toUint - Converts value to unsigned integer
+* Number.toUint32 - Converts value to 32bit unsigned integer
+* Array.prototype.eIndexOf, eLastIndexOf - Egal version (that uses Object.is) of
+  standard methods (all methods that were using native indexOf or lastIndexOf
+  now uses eIndexOf and elastIndexOf respectively)
+* Array.of - as it's specified for ES6
+
+Fixes:
+* Fixed binarySearch so it always returns valid list index
+* Object.isList - it failed on lists that are callable (e.g. NodeList in Nitro
+  engine)
+* Object.map now supports third argument for callback
+
+v0.7.1  --  2012.01.05
+New methods:
+* Array.prototype.firstIndex - returns first valid index of array (for
+       sparse arrays it may not be '0'
+
+Improvements:
+* Array.prototype.first - now returns value for index returned by firstIndex
+* Object.prototype.mapToArray - can be called without callback, then array of
+       key-value pairs is returned
+
+Fixes
+* Array.prototype.forEachRight, object's length read through UInt32 conversion
+
+v0.7.0  --  2011.12.27
+Major update.
+Stepped back from experimental ideas and introduced more standard approach
+taking example from how ES5 methods and functions are designed. One exceptions
+is that, we don’t refrain from declaring methods for Object.prototype - it’s up
+to developer whether how he decides to use it in his context (as function or as
+method).
+
+In general:
+* Removed any method 'functionalization' and functionalize method itself.
+       es5-ext declares plain methods, which can be configured to work as functions
+       with call.bind(method) - see documentation.
+* Removed separation of Object methods for ES5 (with descriptors) and
+       ES3 (plain) - we're following ES5 idea on that, some methods are intended just
+       for enumerable properties and some are for all properties, all are declared
+       for Object.prototype
+* Removed separation of Array generic (collected in List folder) and not generic
+       methods (collected in Array folder). Now all methods are generic and are in
+       Array/prototype folder. This separation also meant, that methods in Array are
+       usually destructive. We don’t do that separation now, there’s generally no use
+       case for destructive iterators, we should be fine with one version of each
+       method, (same as ES5 is fine with  e.g. one, non destructive 'filter' method)
+* Folder structure resembles tree of native ES5 Objects
+* All methods are written with ES5 conventions in mind, it means that most
+       methods are generic and can be run on any object. In more detail:
+       ** Array.prototype and Object.prototype methods can be run on any object (any
+               not null or undefined value),
+       ** Date.prototype methods should be called only on Date instances.
+       ** Function.prototype methods can be called on any callable objects (not
+               necessarily functions)
+       ** Number.prototype & String.prototype methods can be called on any value, in
+               case of Number it it’ll be degraded to number, in case of string it’ll be
+               degraded to string.
+* Travis CI support (only for Node v0.6 branch, as v0.4 has buggy V8 version)
+
+Improvements for existing functions and methods:
+* Function.memoize (was Function.cache) is now fully generic, can operate on any
+       type of arguments and it’s NaN safe (all NaN objects are considered equal)
+* Method properties passed to Object.prototype.extend or
+       Object.prototype.override can aside of _super optionally take prototype object
+       via _proto argument
+* Object iterators: forEach, mapToArray and every can now iterate in specified
+       order
+* pluck, invoke and other functions that return reusable functions or methods
+       have now their results memoized.
+
+New methods:
+* Global: assertNotNull, getNextIdGenerator, guid, isEqual, isPrimitive,
+       toObject
+* Array: generate
+* Array.prototype: binarySearch, clear, contains, diff, exclusion, find, first,
+       forEachRight, group, indexesOf, intersection, remove, someRight, someValue
+* Boolean: isBoolean
+* Date: isDate
+* Function: arguments, context, insert, isArguments, remove
+* Function.prototype: not, silent
+* Number: getAutoincrement, isNumber
+* Number.prototype: isLessOrEqual, isLess, subtract
+* Object: assertCallable, descriptor (functions for clean descriptors),
+       getCompareBy, isCallable, isObject
+* Object.prototype: clone (real clone), compact, count, diff, empty,
+       getPropertyNames, get, keyOf, mapKeys, override, plainCreate, plainExtend,
+       slice, some, unset
+* RegExp: isRegExp
+* String: getPrefixWith, isString
+* String.prototype: caseInsensitiveCompare, contains, isNumeric
+
+Renamed methods:
+* Date.clone -> Date.prototype.copy
+* Date.format -> Date.getFormat
+* Date/day/floor -> Date.prototype.floorDay
+* Date/month/floor -> Date.prototype.floorMonth
+* Date/month/year -> Date.prototype.floorYear
+* Function.cache -> Function.memoize
+* Function.getApplyArg -> Function.prototype.match
+* Function.sequence -> Function.prototype.chain
+* List.findSameStartLength -> Array.prototype.commonLeft
+* Number.pad -> Number.getPad
+* Object/plain/clone -> Object.prototype.copy
+* Object/plain/elevate -> Object.prototype.flatten
+* Object/plain/same -> Object.prototype.isDuplicate
+* Object/plain/setValue -> Object.getSet
+* String.format -> String.getFormat
+* String.indent -> String.getIndent
+* String.pad -> String.getPad
+* String.trimLeftStr -> String.prototype.trimCommonLeft
+* Object.merge -> Object.prototype.mergeProperties
+* Object/plain/pluck -> Object.prototype.get
+* Array.clone is now Array.prototype.copy and can be used also on any array-like
+       objects
+* List.isList -> Object.isList
+* List.toArray -> Object.prototype.toArray
+* String/convert/dashToCamelCase -> String.prototype.dashToCamelCase
+
+Removed methods:
+* Array.compact - removed destructive version (that operated on same array), we
+       have now non destructive version as Array.prototype.compact.
+* Function.applyBind -> use apply.bind directly
+* Function.bindBind -> use bind.bind directly
+* Function.callBind -> use call.bind directly
+* Fuction.clone -> no valid use case
+* Function.dscope -> controversial approach, shouldn’t be considered seriously
+* Function.functionalize -> It was experimental but standards are standards
+* List/sort/length -> It can be easy obtained by Object.getCompareBy(‘length’)
+* List.concat -> Concat’s for array-like’s makes no sense, just convert to array
+       first
+* List.every -> Use Array.prototype.every directly
+* List.filter -> Use Array.prototype.filter directly
+* List.forEach -> User Array.prototype.forEach directly
+* List.isListObject -> No valid use case, do: isList(list) && (typeof list ===
+       'object’)
+* List.map -> Use Array.prototype.map directly
+* List.reduce -> Use Array.prototype.reduce directly
+* List.shiftSame -> Use Array.prototype.commonLeft and do slice
+* List.slice -> Use Array.prototype.slice directly
+* List.some -> Use Array.prototype.some directly
+* Object.bindMethods -> it was version that considered descriptors, we have now
+       Object.prototype.bindMethods which operates only on enumerable properties
+* Object.every -> version that considered all properties, we have now
+       Object.prototype.every which iterates only enumerables
+* Object.invoke -> no use case
+* Object.mergeDeep -> no use case
+* Object.pluck -> no use case
+* Object.same -> it considered descriptors, now there’s only Object.isDuplicate
+       which compares only enumerable properties
+* Object.sameType -> no use case
+* Object.toDescriptor and Object.toDescriptors -> replaced by much nicer
+       Object.descriptor functions
+* Object/plain/link -> no use case (it was used internally only by
+       Object/plain/merge)
+* Object/plain/setTrue -> now easily configurable by more universal
+       Object.getSet(true)
+* String.trimRightStr -> Eventually String.prototype.trimCommonRight will be
+       added
+
+v0.6.3  --  2011.12.12
+* Cleared npm warning for misnamed property in package.json
+
+v0.6.2  --  2011.08.12
+* Calling String.indent without scope (global scope then) now treated as calling
+  it with null scope, it allows more direct invocations when using default nest
+  string: indent().call(str, nest)
+
+v0.6.1  --  2011.08.08
+* Added TAD test suite to devDependencies, configured test commands.
+  Tests can be run with 'make test' or 'npm test'
+
+v0.6.0  --  2011.08.07
+New methods:
+* Array: clone, compact (in place)
+* Date: format, duration, clone, monthDaysCount, day.floor, month.floor,
+  year.floor
+* Function: getApplyArg, , ncurry, rncurry, hold, cache, log
+* List: findSameStartLength, shiftSame, peek, isListObject
+* Number: pad
+* Object: sameType, toString, mapToArray, mergeDeep, toDescriptor,
+  toDescriptors, invoke
+* String: startsWith, endsWith, indent, trimLeftStr, trimRightStr, pad, format
+
+Fixed:
+* Object.extend does now prototypal extend as exptected
+* Object.merge now tries to overwrite only configurable properties
+* Function.flip
+
+Improved:
+* Faster List.toArray
+* Better global retrieval
+* Functionalized all Function methods
+* Renamed bindApply and bindCall to applyBind and callBind
+* Removed Function.inherit (as it's unintuitive curry clone)
+* Straightforward logic in Function.k
+* Fixed naming of some tests files (letter case issue)
+* Renamed Function.saturate into Function.lock
+* String.dashToCamelCase digits support
+* Strings now considered as List objects
+* Improved List.compact
+* Concise logic for List.concat
+* Test wit TAD in clean ES5 context
+
+v0.5.1  --  2011.07.11
+* Function's bindBind, bindCall and bindApply now more versatile
+
+v0.5.0  --  2011.07.07
+* Removed Object.is and List.apply
+* Renamed Object.plain.is to Object.plain.isPlainObject (keep naming convention
+  consistent)
+* Improved documentation
+
+v0.4.0  --  2011.07.05
+* Take most functions on Object to Object.plain to keep them away from object
+  descriptors
+* Object functions with ES5 standard in mind (object descriptors)
+
+v0.3.0  --  2011.06.24
+* New functions
+* Consistent file naming (dash instead of camelCase)
+
+v0.2.1  --  2011.05.28
+* Renamed Functions.K and Function.S to to lowercase versions (use consistent
+  naming)
+
+v0.2.0  --  2011.05.28
+* Renamed Array folder to List (as its generic functions for array-like objects)
+* Added Makefile
+* Added various functions
+
+v0.1.0  --  2011.05.24
+* Initial version
@@ -1,6 +1,4 @@
-Copyright 2010 James Halliday (mail@substack.net)
-
-This project is free software released under the MIT/X11 license:
+Copyright (C) 2011-2015 Mariusz Nowak (www.medikoo.com)
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/README.md b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/README.md
new file mode 100644 (file)
index 0000000..11d8a34
--- /dev/null
@@ -0,0 +1,993 @@
+# es5-ext
+## ECMAScript 5 extensions
+### (with respect to ECMAScript 6 standard)
+
+Shims for upcoming ES6 standard and other goodies implemented strictly with ECMAScript conventions in mind.
+
+It's designed to be used in compliant ECMAScript 5 or ECMAScript 6 environments. Older environments are not supported, although most of the features should work with correct ECMAScript 5 shim on board.
+
+When used in ECMAScript 6 environment, native implementation (if valid) takes precedence over shims.
+
+### Installation
+
+       $ npm install es5-ext
+       
+To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)
+
+### Usage
+
+#### ECMAScript 6 features
+
+You can force ES6 features to be implemented in your environment, e.g. following will assign `from` function to `Array` (only if it's not implemented already).
+
+```javascript
+require('es5-ext/array/from/implement');
+Array.from('foo'); // ['f', 'o', 'o']
+```
+
+You can also access shims directly, without fixing native objects. Following will return native `Array.from` if it's available and fallback to shim if it's not.
+
+```javascript
+var aFrom = require('es5-ext/array/from');
+aFrom('foo'); // ['f', 'o', 'o']
+```
+
+If you want to use shim unconditionally (even if native implementation exists) do:
+
+```javascript
+var aFrom = require('es5-ext/array/from/shim');
+aFrom('foo'); // ['f', 'o', 'o']
+```
+
+##### List of ES6 shims
+
+It's about properties introduced with ES6 and those that have been updated in new spec.
+
+- `Array.from` -> `require('es5-ext/array/from')`
+- `Array.of` -> `require('es5-ext/array/of')`
+- `Array.prototype.concat` -> `require('es5-ext/array/#/concat')`
+- `Array.prototype.copyWithin` -> `require('es5-ext/array/#/copy-within')`
+- `Array.prototype.entries` -> `require('es5-ext/array/#/entries')`
+- `Array.prototype.fill` -> `require('es5-ext/array/#/fill')`
+- `Array.prototype.filter` -> `require('es5-ext/array/#/filter')`
+- `Array.prototype.find` -> `require('es5-ext/array/#/find')`
+- `Array.prototype.findIndex` -> `require('es5-ext/array/#/find-index')`
+- `Array.prototype.keys` -> `require('es5-ext/array/#/keys')`
+- `Array.prototype.map` -> `require('es5-ext/array/#/map')`
+- `Array.prototype.slice` -> `require('es5-ext/array/#/slice')`
+- `Array.prototype.splice` -> `require('es5-ext/array/#/splice')`
+- `Array.prototype.values` -> `require('es5-ext/array/#/values')`
+- `Array.prototype[@@iterator]` -> `require('es5-ext/array/#/@@iterator')`
+- `Math.acosh` -> `require('es5-ext/math/acosh')`
+- `Math.asinh` -> `require('es5-ext/math/asinh')`
+- `Math.atanh` -> `require('es5-ext/math/atanh')`
+- `Math.cbrt` -> `require('es5-ext/math/cbrt')`
+- `Math.clz32` -> `require('es5-ext/math/clz32')`
+- `Math.cosh` -> `require('es5-ext/math/cosh')`
+- `Math.exmp1` -> `require('es5-ext/math/expm1')`
+- `Math.fround` -> `require('es5-ext/math/fround')`
+- `Math.hypot` -> `require('es5-ext/math/hypot')`
+- `Math.imul` -> `require('es5-ext/math/imul')`
+- `Math.log1p` -> `require('es5-ext/math/log1p')`
+- `Math.log2` -> `require('es5-ext/math/log2')`
+- `Math.log10` -> `require('es5-ext/math/log10')`
+- `Math.sign` -> `require('es5-ext/math/sign')`
+- `Math.signh` -> `require('es5-ext/math/signh')`
+- `Math.tanh` -> `require('es5-ext/math/tanh')`
+- `Math.trunc` -> `require('es5-ext/math/trunc')`
+- `Number.EPSILON` -> `require('es5-ext/number/epsilon')`
+- `Number.MAX_SAFE_INTEGER` -> `require('es5-ext/number/max-safe-integer')`
+- `Number.MIN_SAFE_INTEGER` -> `require('es5-ext/number/min-safe-integer')`
+- `Number.isFinite` -> `require('es5-ext/number/is-finite')`
+- `Number.isInteger` -> `require('es5-ext/number/is-integer')`
+- `Number.isNaN` -> `require('es5-ext/number/is-nan')`
+- `Number.isSafeInteger` -> `require('es5-ext/number/is-safe-integer')`
+- `Object.assign` -> `require('es5-ext/object/assign')`
+- `Object.keys` -> `require('es5-ext/object/keys')`
+- `Object.setPrototypeOf` -> `require('es5-ext/object/set-prototype-of')`
+- `RegExp.prototype.match` -> `require('es5-ext/reg-exp/#/match')`
+- `RegExp.prototype.replace` -> `require('es5-ext/reg-exp/#/replace')`
+- `RegExp.prototype.search` -> `require('es5-ext/reg-exp/#/search')`
+- `RegExp.prototype.split` -> `require('es5-ext/reg-exp/#/split')`
+- `RegExp.prototype.sticky` -> Implement with `require('es5-ext/reg-exp/#/sticky/implement')`, use as function with `require('es5-ext/reg-exp/#/is-sticky')`
+- `RegExp.prototype.unicode` -> Implement with `require('es5-ext/reg-exp/#/unicode/implement')`, use as function with `require('es5-ext/reg-exp/#/is-unicode')`
+- `String.fromCodePoint` -> `require('es5-ext/string/from-code-point')`
+- `String.raw` -> `require('es5-ext/string/raw')`
+- `String.prototype.codePointAt` -> `require('es5-ext/string/#/code-point-at')`
+- `String.prototype.contains` -> `require('es5-ext/string/#/contains')`
+- `String.prototype.endsWith` -> `require('es5-ext/string/#/ends-with')`
+- `String.prototype.normalize` -> `require('es5-ext/string/#/normalize')`
+- `String.prototype.repeat` -> `require('es5-ext/string/#/repeat')`
+- `String.prototype.startsWith` -> `require('es5-ext/string/#/starts-with')`
+- `String.prototype[@@iterator]` -> `require('es5-ext/string/#/@@iterator')`
+
+#### Non ECMAScript standard features
+
+__es5-ext__ provides also other utils, and implements them as if they were proposed for a standard. It mostly offers methods (not functions) which can directly be assigned to native prototypes:
+
+```javascript
+Object.defineProperty(Function.prototype, 'partial', { value: require('es5-ext/function/#/partial'),
+  configurable: true, enumerable: false, writable: true });
+Object.defineProperty(Array.prototype, 'flatten', { value: require('es5-ext/array/#/flatten'),
+  configurable: true, enumerable: false, writable: true });
+Object.defineProperty(String.prototype, 'capitalize', { value: require('es5-ext/string/#/capitalize'),
+  configurable: true, enumerable: false, writable: true });
+```
+
+See [es5-extend](https://github.com/wookieb/es5-extend#es5-extend), a great utility that automatically will extend natives for you. 
+
+__Important:__ Remember to __not__ extend natives in scope of generic reusable packages (e.g. ones you intend to publish to npm). Extending natives is fine __only__ if you're the _owner_ of the global scope, so e.g. in final project you lead development of.
+
+When you're in situation when native extensions are not good idea, then you should use methods indirectly:
+
+
+```javascript
+var flatten = require('es5-ext/array/#/flatten');
+
+flatten.call([1, [2, [3, 4]]]); // [1, 2, 3, 4]
+```
+
+for better convenience you can turn methods into functions:
+
+
+```javascript
+var call = Function.prototype.call
+var flatten = call.bind(require('es5-ext/array/#/flatten'));
+
+flatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]
+```
+
+You can configure custom toolkit (like [underscorejs](http://underscorejs.org/)), and use it throughout your application
+
+```javascript
+var util = {};
+util.partial = call.bind(require('es5-ext/function/#/partial'));
+util.flatten = call.bind(require('es5-ext/array/#/flatten'));
+util.startsWith = call.bind(require('es5-ext/string/#/starts-with'));
+
+util.flatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]
+```
+
+As with native ones most methods are generic and can be run on any type of object.
+
+## API
+
+### Global extensions
+
+#### global _(es5-ext/global)_
+
+Object that represents global scope
+
+### Array Constructor extensions
+
+#### from(arrayLike[, mapFn[, thisArg]]) _(es5-ext/array/from)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from).  
+Returns array representation of _iterable_ or _arrayLike_. If _arrayLike_ is an instance of array, its copy is returned.
+
+#### generate([length[, …fill]]) _(es5-ext/array/generate)_
+
+Generate an array of pre-given _length_ built of repeated arguments.
+
+#### isPlainArray(x) _(es5-ext/array/is-plain-array)_
+
+Returns true if object is plain array (not instance of one of the Array's extensions).
+
+#### of([…items]) _(es5-ext/array/of)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.of).  
+Create an array from given arguments.
+
+#### toArray(obj) _(es5-ext/array/to-array)_
+
+Returns array representation of `obj`. If `obj` is already an array, `obj` is returned back.
+
+#### validArray(obj) _(es5-ext/array/valid-array)_
+
+Returns `obj` if it's an array, otherwise throws `TypeError`
+
+### Array Prototype extensions
+
+#### arr.binarySearch(compareFn) _(es5-ext/array/#/binary-search)_
+
+In __sorted__ list search for index of item for which _compareFn_ returns value closest to _0_.  
+It's variant of binary search algorithm
+
+#### arr.clear() _(es5-ext/array/#/clear)_
+
+Clears the array
+
+#### arr.compact() _(es5-ext/array/#/compact)_
+
+Returns a copy of the context with all non-values (`null` or `undefined`) removed.
+
+#### arr.concat() _(es5-ext/array/#/concat)_
+
+[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.concat).  
+ES6's version of `concat`. Supports `isConcatSpreadable` symbol, and returns array of same type as the context.
+
+#### arr.contains(searchElement[, position]) _(es5-ext/array/#/contains)_
+
+Whether list contains the given value.
+
+#### arr.copyWithin(target, start[, end]) _(es5-ext/array/#/copy-within)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.copywithin).  
+
+#### arr.diff(other) _(es5-ext/array/#/diff)_
+
+Returns the array of elements that are present in context list but not present in other list.
+
+#### arr.eIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-index-of)_
+
+_egal_ version of `indexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision
+
+#### arr.eLastIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-last-index-of)_
+
+_egal_ version of `lastIndexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision
+
+#### arr.entries() _(es5-ext/array/#/entries)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.entries).  
+Returns iterator object, which traverses the array. Each value is represented with an array, where first value is an index and second is corresponding to index value.
+
+#### arr.exclusion([…lists]]) _(es5-ext/array/#/exclusion)_
+
+Returns the array of elements that are found only in one of the lists (either context list or list provided in arguments).
+
+#### arr.fill(value[, start, end]) _(es5-ext/array/#/fill)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.fill).  
+
+#### arr.filter(callback[, thisArg]) _(es5-ext/array/#/filter)_
+
+[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.filter).  
+ES6's version of `filter`, returns array of same type as the context.
+
+#### arr.find(predicate[, thisArg]) _(es5-ext/array/#/find)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.find).  
+Return first element for which given function returns true
+
+#### arr.findIndex(predicate[, thisArg]) _(es5-ext/array/#/find-index)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.findindex).  
+Return first index for which given function returns true
+
+#### arr.first() _(es5-ext/array/#/first)_
+
+Returns value for first defined index
+
+#### arr.firstIndex() _(es5-ext/array/#/first-index)_
+
+Returns first declared index of the array
+
+#### arr.flatten() _(es5-ext/array/#/flatten)_
+
+Returns flattened version of the array
+
+#### arr.forEachRight(cb[, thisArg]) _(es5-ext/array/#/for-each-right)_
+
+`forEach` starting from last element
+
+#### arr.group(cb[, thisArg]) _(es5-ext/array/#/group)_
+
+Group list elements by value returned by _cb_ function
+
+#### arr.indexesOf(searchElement[, fromIndex]) _(es5-ext/array/#/indexes-of)_
+
+Returns array of all indexes of given value
+
+#### arr.intersection([…lists]) _(es5-ext/array/#/intersection)_
+
+Computes the array of values that are the intersection of all lists (context list and lists given in arguments)
+
+#### arr.isCopy(other) _(es5-ext/array/#/is-copy)_
+
+Returns true if both context and _other_ lists have same content
+
+#### arr.isUniq() _(es5-ext/array/#/is-uniq)_
+
+Returns true if all values in array are unique
+
+#### arr.keys() _(es5-ext/array/#/keys)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.keys).  
+Returns iterator object, which traverses all array indexes.
+
+#### arr.last() _(es5-ext/array/#/last)_
+
+Returns value of last defined index
+
+#### arr.lastIndex() _(es5-ext/array/#/last)_
+
+Returns last defined index of the array
+
+#### arr.map(callback[, thisArg]) _(es5-ext/array/#/map)_
+
+[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.map).  
+ES6's version of `map`, returns array of same type as the context.
+
+#### arr.remove(value[, …valuen]) _(es5-ext/array/#/remove)_
+
+Remove values from the array
+
+#### arr.separate(sep) _(es5-ext/array/#/separate)_
+
+Returns array with items separated with `sep` value
+
+#### arr.slice(callback[, thisArg]) _(es5-ext/array/#/slice)_
+
+[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.slice).  
+ES6's version of `slice`, returns array of same type as the context.
+
+#### arr.someRight(cb[, thisArg]) _(es5-ext/array/#/someRight)_
+
+`some` starting from last element
+
+#### arr.splice(callback[, thisArg]) _(es5-ext/array/#/splice)_
+
+[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.splice).  
+ES6's version of `splice`, returns array of same type as the context.
+
+#### arr.uniq() _(es5-ext/array/#/uniq)_
+
+Returns duplicate-free version of the array
+
+#### arr.values() _(es5-ext/array/#/values)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.values).  
+Returns iterator object which traverses all array values.
+
+#### arr[@@iterator] _(es5-ext/array/#/@@iterator)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype-@@iterator).  
+Returns iterator object which traverses all array values.
+
+### Boolean Constructor extensions
+
+#### isBoolean(x) _(es5-ext/boolean/is-boolean)_
+
+Whether value is boolean
+
+### Date Constructor extensions
+
+#### isDate(x) _(es5-ext/date/is-date)_
+
+Whether value is date instance
+
+#### validDate(x) _(es5-ext/date/valid-date)_
+
+If given object is not date throw TypeError in other case return it.
+
+### Date Prototype extensions
+
+#### date.copy(date) _(es5-ext/date/#/copy)_
+
+Returns a copy of the date object
+
+#### date.daysInMonth() _(es5-ext/date/#/days-in-month)_
+
+Returns number of days of date's month
+
+#### date.floorDay() _(es5-ext/date/#/floor-day)_
+
+Sets the date time to 00:00:00.000
+
+#### date.floorMonth() _(es5-ext/date/#/floor-month)_
+
+Sets date day to 1 and date time to 00:00:00.000
+
+#### date.floorYear() _(es5-ext/date/#/floor-year)_
+
+Sets date month to 0, day to 1 and date time to 00:00:00.000
+
+#### date.format(pattern) _(es5-ext/date/#/format)_
+
+Formats date up to given string. Supported patterns:
+
+* `%Y` - Year with century, 1999, 2003
+* `%y` - Year without century, 99, 03
+* `%m` - Month, 01..12
+* `%d` - Day of the month 01..31
+* `%H` - Hour (24-hour clock), 00..23
+* `%M` - Minute, 00..59
+* `%S` - Second, 00..59
+* `%L` - Milliseconds, 000..999
+
+### Error Constructor extensions
+
+#### custom(message/*, code, ext*/) _(es5-ext/error/custom)_
+
+Creates custom error object, optinally extended with `code` and other extension properties (provided with `ext` object)  
+
+#### isError(x) _(es5-ext/error/is-error)_
+
+Whether value is an error (instance of `Error`).  
+
+#### validError(x) _(es5-ext/error/valid-error)_
+
+If given object is not error throw TypeError in other case return it.
+
+### Error Prototype extensions
+
+#### err.throw() _(es5-ext/error/#/throw)_
+
+Throws error
+
+### Function Constructor extensions
+
+Some of the functions were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele
+
+#### constant(x) _(es5-ext/function/constant)_
+
+Returns a constant function that returns pregiven argument
+
+_k(x)(y)  =def  x_
+
+#### identity(x) _(es5-ext/function/identity)_
+
+Identity function. Returns first argument
+
+_i(x)  =def  x_
+
+#### invoke(name[, …args]) _(es5-ext/function/invoke)_
+
+Returns a function that takes an object as an argument, and applies object's
+_name_ method to arguments.  
+_name_ can be name of the method or method itself.
+
+_invoke(name, …args)(object, …args2)  =def  object\[name\]\(…args, …args2\)_
+
+#### isArguments(x) _(es5-ext/function/is-arguments)_
+
+Whether value is arguments object
+
+#### isFunction(arg) _(es5-ext/function/is-function)_
+
+Wether value is instance of function
+
+#### noop() _(es5-ext/function/noop)_
+
+No operation function
+
+#### pluck(name) _(es5-ext/function/pluck)_
+
+Returns a function that takes an object, and returns the value of its _name_
+property
+
+_pluck(name)(obj)  =def  obj[name]_
+
+#### validFunction(arg) _(es5-ext/function/valid-function)_
+
+If given object is not function throw TypeError in other case return it.
+
+### Function Prototype extensions
+
+Some of the methods were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele
+
+#### fn.compose([…fns]) _(es5-ext/function/#/compose)_
+
+Applies the functions in reverse argument-list order.
+
+_f1.compose(f2, f3, f4)(…args)  =def  f1(f2(f3(f4(…arg))))_
+
+#### fn.copy() _(es5-ext/function/#/copy)_
+
+Produces copy of given function
+
+#### fn.curry([n]) _(es5-ext/function/#/curry)_
+
+Invoking the function returned by this function only _n_ arguments are passed to the underlying function. If the underlying function is not saturated, the result is a function that passes all its arguments to the underlying function.  
+If _n_ is not provided then it defaults to context function length
+
+_f.curry(4)(arg1, arg2)(arg3)(arg4)  =def  f(arg1, args2, arg3, arg4)_
+
+#### fn.lock([…args]) _(es5-ext/function/#/lock)_
+
+Returns a function that applies the underlying function to _args_, and ignores its own arguments.
+
+_f.lock(…args)(…args2)  =def  f(…args)_
+
+_Named after it's counterpart in Google Closure_
+
+#### fn.not() _(es5-ext/function/#/not)_
+
+Returns a function that returns boolean negation of value returned by underlying function.
+
+_f.not()(…args)  =def !f(…args)_
+
+#### fn.partial([…args]) _(es5-ext/function/#/partial)_
+
+Returns a function that when called will behave like context function called with initially passed arguments. If more arguments are suplilied, they are appended to initial args.
+
+_f.partial(…args1)(…args2)  =def  f(…args1, …args2)_
+
+#### fn.spread() _(es5-ext/function/#/spread)_
+
+Returns a function that applies underlying function with first list argument
+
+_f.match()(args)  =def  f.apply(null, args)_
+
+#### fn.toStringTokens() _(es5-ext/function/#/to-string-tokens)_
+
+Serializes function into two (arguments and body) string tokens. Result is plain object with `args` and `body` properties.
+
+### Math extensions
+
+#### acosh(x) _(es5-ext/math/acosh)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.acosh).  
+
+#### asinh(x) _(es5-ext/math/asinh)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.asinh).  
+
+#### atanh(x) _(es5-ext/math/atanh)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.atanh).  
+
+#### cbrt(x) _(es5-ext/math/cbrt)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cbrt).  
+
+#### clz32(x) _(es5-ext/math/clz32)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.clz32).  
+
+#### cosh(x) _(es5-ext/math/cosh)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cosh).  
+
+#### expm1(x) _(es5-ext/math/expm1)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.expm1).  
+
+#### fround(x) _(es5-ext/math/fround)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.fround).  
+
+#### hypot([…values]) _(es5-ext/math/hypot)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.hypot).  
+
+#### imul(x, y) _(es5-ext/math/imul)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.imul).  
+
+#### log1p(x) _(es5-ext/math/log1p)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log1p).  
+
+#### log2(x) _(es5-ext/math/log2)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log2).  
+
+#### log10(x) _(es5-ext/math/log10)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log10).  
+
+#### sign(x) _(es5-ext/math/sign)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sign).  
+
+#### sinh(x) _(es5-ext/math/sinh)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sinh).  
+
+#### tanh(x) _(es5-ext/math/tanh)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.tanh).  
+
+#### trunc(x) _(es5-ext/math/trunc)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.trunc).  
+
+### Number Constructor extensions
+
+#### EPSILON _(es5-ext/number/epsilon)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.epsilon).  
+
+The difference between 1 and the smallest value greater than 1 that is representable as a Number value, which is approximately 2.2204460492503130808472633361816 x 10-16.
+
+#### isFinite(x) _(es5-ext/number/is-finite)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isfinite).  
+Whether value is finite. Differs from global isNaN that it doesn't do type coercion.
+
+#### isInteger(x) _(es5-ext/number/is-integer)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isinteger).  
+Whether value is integer.
+
+#### isNaN(x) _(es5-ext/number/is-nan)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isnan).  
+Whether value is NaN. Differs from global isNaN that it doesn't do type coercion.
+
+#### isNumber(x) _(es5-ext/number/is-number)_
+
+Whether given value is number
+
+#### isSafeInteger(x) _(es5-ext/number/is-safe-integer)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.issafeinteger).  
+
+#### MAX_SAFE_INTEGER _(es5-ext/number/max-safe-integer)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.maxsafeinteger).  
+The value of Number.MAX_SAFE_INTEGER is 9007199254740991.
+
+#### MIN_SAFE_INTEGER _(es5-ext/number/min-safe-integer)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.minsafeinteger).  
+The value of Number.MIN_SAFE_INTEGER is -9007199254740991 (253-1).
+
+#### toInteger(x) _(es5-ext/number/to-integer)_
+
+Converts value to integer
+
+#### toPosInteger(x) _(es5-ext/number/to-pos-integer)_
+
+Converts value to positive integer. If provided value is less than 0, then 0 is returned
+
+#### toUint32(x) _(es5-ext/number/to-uint32)_
+
+Converts value to unsigned 32 bit integer. This type is used for array lengths.
+See: http://www.2ality.com/2012/02/js-integers.html
+
+### Number Prototype extensions
+
+#### num.pad(length[, precision]) _(es5-ext/number/#/pad)_
+
+Pad given number with zeros. Returns string
+
+### Object Constructor extensions
+
+#### assign(target, source[, …sourcen]) _(es5-ext/object/assign)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign).  
+Extend _target_ by enumerable own properties of other objects. If properties are already set on target object, they will be overwritten.
+
+#### clear(obj) _(es5-ext/object/clear)_
+
+Remove all enumerable own properties of the object
+
+#### compact(obj) _(es5-ext/object/compact)_
+
+Returns copy of the object with all enumerable properties that have no falsy values
+
+#### compare(obj1, obj2) _(es5-ext/object/compare)_
+
+Universal cross-type compare function. To be used for e.g. array sort.
+
+#### copy(obj) _(es5-ext/object/copy)_
+
+Returns copy of the object with all enumerable properties.
+
+#### copyDeep(obj) _(es5-ext/object/copy-deep)_
+
+Returns deep copy of the object with all enumerable properties.
+
+#### count(obj) _(es5-ext/object/count)_
+
+Counts number of enumerable own properties on object
+
+#### create(obj[, properties]) _(es5-ext/object/create)_
+
+`Object.create` alternative that provides workaround for [V8 issue](http://code.google.com/p/v8/issues/detail?id=2804).
+
+When `null` is provided as a prototype, it's substituted with specially prepared object that derives from Object.prototype but has all Object.prototype properties shadowed with undefined.
+
+It's quirky solution that allows us to have plain objects with no truthy properties but with turnable prototype.
+
+Use only for objects that you plan to switch prototypes of and be aware of limitations of this workaround.
+
+#### eq(x, y) _(es5-ext/object/eq)_
+
+Whether two values are equal, using [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.
+
+#### every(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/every)_
+
+Analogous to Array.prototype.every. Returns true if every key-value pair in this object satisfies the provided testing function.  
+Optionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).
+
+#### filter(obj, cb[, thisArg]) _(es5-ext/object/filter)_
+
+Analogous to Array.prototype.filter. Returns new object with properites for which _cb_ function returned truthy value.
+
+#### firstKey(obj) _(es5-ext/object/first-key)_
+
+Returns first enumerable key of the object, as keys are unordered by specification, it can be any key of an object.
+
+#### flatten(obj) _(es5-ext/object/flatten)_
+
+Returns new object, with flatten properties of input object
+
+_flatten({ a: { b: 1 }, c: { d: 1 } })  =def  { b: 1, d: 1 }_
+
+#### forEach(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/for-each)_
+
+Analogous to Array.prototype.forEach. Calls a function for each key-value pair found in object
+Optionally _compareFn_ can be provided which assures that properties are iterated in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).
+
+#### getPropertyNames() _(es5-ext/object/get-property-names)_
+
+Get all (not just own) property names of the object
+
+#### is(x, y) _(es5-ext/object/is)_
+
+Whether two values are equal, using [_SameValue_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.
+
+#### isArrayLike(x) _(es5-ext/object/is-array-like)_
+
+Whether object is array-like object
+
+#### isCopy(x, y) _(es5-ext/object/is-copy)_
+
+Two values are considered a copy of same value when all of their own enumerable properties have same values.
+
+#### isCopyDeep(x, y) _(es5-ext/object/is-copy-deep)_
+
+Deep comparision of objects
+
+#### isEmpty(obj) _(es5-ext/object/is-empty)_
+
+True if object doesn't have any own enumerable property
+
+#### isObject(arg) _(es5-ext/object/is-object)_
+
+Whether value is not primitive
+
+#### isPlainObject(arg) _(es5-ext/object/is-plain-object)_
+
+Whether object is plain object, its protototype should be Object.prototype and it cannot be host object.
+
+#### keyOf(obj, searchValue) _(es5-ext/object/key-of)_
+
+Search object for value
+
+#### keys(obj) _(es5-ext/object/keys)_
+
+[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys).  
+ES6's version of `keys`, doesn't throw on primitive input
+
+#### map(obj, cb[, thisArg]) _(es5-ext/object/map)_
+
+Analogous to Array.prototype.map. Creates a new object with properties which values are results of calling a provided function on every key-value pair in this object.
+
+#### mapKeys(obj, cb[, thisArg]) _(es5-ext/object/map-keys)_
+
+Create new object with same values, but remapped keys
+
+#### mixin(target, source) _(es5-ext/object/mixin)_
+
+Extend _target_ by all own properties of other objects. Properties found in both objects will be overwritten (unless they're not configurable and cannot be overwritten).
+_It was for a moment part of ECMAScript 6 draft._
+
+#### mixinPrototypes(target, …source]) _(es5-ext/object/mixin-prototypes)_
+
+Extends _target_, with all source and source's prototype properties.
+Useful as an alternative for `setPrototypeOf` in environments in which it cannot be shimmed (no `__proto__` support).
+
+#### normalizeOptions(options) _(es5-ext/object/normalize-options)_
+
+Normalizes options object into flat plain object.  
+
+Useful for functions in which we either need to keep options object for future reference or need to modify it for internal use.
+
+- It never returns input `options` object back (always a copy is created)
+- `options` can be undefined in such case empty plain object is returned.
+- Copies all enumerable properties found down prototype chain.
+
+#### primitiveSet([…names]) _(es5-ext/object/primitive-set)_
+
+Creates `null` prototype based plain object, and sets on it all property names provided in arguments to true.
+
+#### safeTraverse(obj[, …names]) _(es5-ext/object/safe-traverse)_
+
+Safe navigation of object properties. See http://wiki.ecmascript.org/doku.php?id=strawman:existential_operator
+
+#### serialize(value) _(es5-ext/object/serialize)_
+
+Serialize value into string. Differs from [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) that it serializes also dates, functions and regular expresssions.
+
+#### setPrototypeOf(object, proto) _(es5-ext/object/set-prototype-of)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.setprototypeof).  
+If native version is not provided, it depends on existence of `__proto__` functionality, if it's missing, `null` instead of function is exposed.
+
+#### some(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/some)_
+
+Analogous to Array.prototype.some Returns true if any key-value pair satisfies the provided
+testing function.  
+Optionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).
+
+#### toArray(obj[, cb[, thisArg[, compareFn]]]) _(es5-ext/object/to-array)_
+
+Creates an array of results of calling a provided function on every key-value pair in this object.  
+Optionally _compareFn_ can be provided which assures that results are added in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).
+
+#### unserialize(str) _(es5-ext/object/unserialize)_
+
+Userializes value previously serialized with [serialize](#serializevalue-es5-extobjectserialize)
+
+#### validCallable(x) _(es5-ext/object/valid-callable)_
+
+If given object is not callable throw TypeError in other case return it.
+
+#### validObject(x) _(es5-ext/object/valid-object)_
+
+Throws error if given value is not an object, otherwise it is returned.
+
+#### validValue(x) _(es5-ext/object/valid-value)_
+
+Throws error if given value is `null` or `undefined`, otherwise returns value.
+
+### RegExp Constructor extensions
+
+#### escape(str) _(es5-ext/reg-exp/escape)_
+
+Escapes string to be used in regular expression
+
+#### isRegExp(x) _(es5-ext/reg-exp/is-reg-exp)_
+
+Whether object is regular expression
+
+#### validRegExp(x) _(es5-ext/reg-exp/valid-reg-exp)_
+
+If object is regular expression it is returned, otherwise TypeError is thrown.
+
+### RegExp Prototype extensions
+
+#### re.isSticky(x) _(es5-ext/reg-exp/#/is-sticky)_
+
+Whether regular expression has `sticky` flag.
+
+It's to be used as counterpart to [regExp.sticky](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.sticky) if it's not implemented.
+
+#### re.isUnicode(x) _(es5-ext/reg-exp/#/is-unicode)_
+
+Whether regular expression has `unicode` flag.
+
+It's to be used as counterpart to [regExp.unicode](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.unicode) if it's not implemented.
+
+#### re.match(string) _(es5-ext/reg-exp/#/match)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.match).  
+
+#### re.replace(string, replaceValue) _(es5-ext/reg-exp/#/replace)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.replace).  
+
+#### re.search(string) _(es5-ext/reg-exp/#/search)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.search).  
+
+#### re.split(string) _(es5-ext/reg-exp/#/search)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.split).  
+
+#### re.sticky _(es5-ext/reg-exp/#/sticky/implement)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.sticky).  
+It's a getter, so only `implement` and `is-implemented` modules are provided.
+
+#### re.unicode _(es5-ext/reg-exp/#/unicode/implement)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.unicode).  
+It's a getter, so only `implement` and `is-implemented` modules are provided.
+
+### String Constructor extensions
+
+#### formatMethod(fMap) _(es5-ext/string/format-method)_
+
+Creates format method. It's used e.g. to create `Date.prototype.format` method
+
+#### fromCodePoint([…codePoints]) _(es5-ext/string/from-code-point)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.fromcodepoint)
+
+#### isString(x) _(es5-ext/string/is-string)_
+
+Whether object is string
+
+#### randomUniq() _(es5-ext/string/random-uniq)_
+
+Returns randomly generated id, with guarantee of local uniqueness (no same id will be returned twice)
+
+#### raw(callSite[, …substitutions]) _(es5-ext/string/raw)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.raw)
+
+### String Prototype extensions
+
+#### str.at(pos) _(es5-ext/string/#/at)_
+
+_Proposed for ECMAScript 6/7 standard, but not (yet) in a draft_
+
+Returns a string at given position in Unicode-safe manner.
+Based on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.at).
+
+#### str.camelToHyphen() _(es5-ext/string/#/camel-to-hyphen)_
+
+Convert camelCase string to hyphen separated, e.g. one-two-three -> oneTwoThree.
+Useful when converting names from js property convention into filename convention.
+
+#### str.capitalize() _(es5-ext/string/#/capitalize)_
+
+Capitalize first character of a string
+
+#### str.caseInsensitiveCompare(str) _(es5-ext/string/#/case-insensitive-compare)_
+
+Case insensitive compare
+
+#### str.codePointAt(pos) _(es5-ext/string/#/code-point-at)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.codepointat)
+
+Based on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.codePointAt).
+
+#### str.contains(searchString[, position]) _(es5-ext/string/#/contains)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.contains)
+
+Whether string contains given string.
+
+#### str.endsWith(searchString[, endPosition]) _(es5-ext/string/#/ends-with)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.endswith).  
+Whether strings ends with given string
+
+#### str.hyphenToCamel() _(es5-ext/string/#/hyphen-to-camel)_
+
+Convert hyphen separated string to camelCase, e.g. one-two-three -> oneTwoThree.
+Useful when converting names from filename convention to js property name convention.
+
+#### str.indent(str[, count]) _(es5-ext/string/#/indent)_
+
+Indents each line with provided _str_ (if _count_ given then _str_ is repeated _count_ times).
+
+#### str.last() _(es5-ext/string/#/last)_
+
+Return last character
+
+#### str.normalize([form]) _(es5-ext/string/#/normalize)_
+
+[_Introduced with ECMAScript 6_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize).  
+Returns the Unicode Normalization Form of a given string.  
+Based on Matsuza's version. Code used for integrated shim can be found at [github.com/walling/unorm](https://github.com/walling/unorm/blob/master/lib/unorm.js)
+
+#### str.pad(fill[, length]) _(es5-ext/string/#/pad)_
+
+Pad string with _fill_.
+If _length_ si given than _fill_ is reapated _length_ times.
+If _length_ is negative then pad is applied from right.
+
+#### str.repeat(n) _(es5-ext/string/#/repeat)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.repeat).  
+Repeat given string _n_ times
+
+#### str.plainReplace(search, replace) _(es5-ext/string/#/plain-replace)_
+
+Simple `replace` version. Doesn't support regular expressions. Replaces just first occurrence of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case).
+
+#### str.plainReplaceAll(search, replace) _(es5-ext/string/#/plain-replace-all)_
+
+Simple `replace` version. Doesn't support regular expressions. Replaces all occurrences of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case).
+
+#### str.startsWith(searchString[, position]) _(es5-ext/string/#/starts-with)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.startswith).  
+Whether strings starts with given string
+
+#### str[@@iterator] _(es5-ext/string/#/@@iterator)_
+
+[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype-@@iterator).  
+Returns iterator object which traverses all string characters (with respect to unicode symbols)
+
+### Tests [![Build Status](https://travis-ci.org/medikoo/es5-ext.png)](https://travis-ci.org/medikoo/es5-ext)
+
+       $ npm test
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/implement.js
new file mode 100644 (file)
index 0000000..0f714a1
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Array.prototype, require('es6-symbol').iterator, { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/index.js
new file mode 100644 (file)
index 0000000..a694626
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Array.prototype[require('es6-symbol').iterator] : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/is-implemented.js
new file mode 100644 (file)
index 0000000..72eb1f8
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var iteratorSymbol = require('es6-symbol').iterator;
+
+module.exports = function () {
+       var arr = ['foo', 1], iterator, result;
+       if (typeof arr[iteratorSymbol] !== 'function') return false;
+       iterator = arr[iteratorSymbol]();
+       if (!iterator) return false;
+       if (typeof iterator.next !== 'function') return false;
+       result = iterator.next();
+       if (!result) return false;
+       if (result.value !== 'foo') return false;
+       if (result.done !== false) return false;
+       return true;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/shim.js
new file mode 100644 (file)
index 0000000..ff295df
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('../values/shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/_compare-by-length.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/_compare-by-length.js
new file mode 100644 (file)
index 0000000..d8343ce
--- /dev/null
@@ -0,0 +1,9 @@
+// Used internally to sort array of lists by length
+
+'use strict';
+
+var toPosInt = require('../../number/to-pos-integer');
+
+module.exports = function (a, b) {
+       return toPosInt(a.length) - toPosInt(b.length);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/binary-search.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/binary-search.js
new file mode 100644 (file)
index 0000000..8eb4567
--- /dev/null
@@ -0,0 +1,28 @@
+'use strict';
+
+var toPosInt = require('../../number/to-pos-integer')
+  , callable = require('../../object/valid-callable')
+  , value    = require('../../object/valid-value')
+
+  , floor    = Math.floor;
+
+module.exports = function (compareFn) {
+       var length, low, high, middle;
+
+       value(this);
+       callable(compareFn);
+
+       length = toPosInt(this.length);
+       low = 0;
+       high = length - 1;
+
+       while (low <= high) {
+               middle = floor((low + high) / 2);
+               if (compareFn(this[middle]) < 0) high = middle - 1;
+               else low = middle + 1;
+       }
+
+       if (high < 0) return 0;
+       if (high >= length) return length - 1;
+       return high;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/clear.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/clear.js
new file mode 100644 (file)
index 0000000..3587bdf
--- /dev/null
@@ -0,0 +1,12 @@
+// Inspired by Google Closure:
+// http://closure-library.googlecode.com/svn/docs/
+// closure_goog_array_array.js.html#goog.array.clear
+
+'use strict';
+
+var value = require('../../object/valid-value');
+
+module.exports = function () {
+       value(this).length = 0;
+       return this;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/compact.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/compact.js
new file mode 100644 (file)
index 0000000..d529d5a
--- /dev/null
@@ -0,0 +1,9 @@
+// Inspired by: http://documentcloud.github.com/underscore/#compact
+
+'use strict';
+
+var filter = Array.prototype.filter;
+
+module.exports = function () {
+       return filter.call(this, function (val) { return val != null; });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/implement.js
new file mode 100644 (file)
index 0000000..80c67cb
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Array.prototype, 'concat', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/index.js
new file mode 100644 (file)
index 0000000..db205ea
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+module.exports = require('./is-implemented')() ?
+               Array.prototype.concat : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/is-implemented.js
new file mode 100644 (file)
index 0000000..cab8bc9
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var SubArray = require('../../_sub-array-dummy-safe');
+
+module.exports = function () {
+       return (new SubArray()).concat('foo') instanceof SubArray;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/shim.js
new file mode 100644 (file)
index 0000000..8b28e4a
--- /dev/null
@@ -0,0 +1,39 @@
+'use strict';
+
+var isPlainArray = require('../../is-plain-array')
+  , toPosInt     = require('../../../number/to-pos-integer')
+  , isObject     = require('../../../object/is-object')
+
+  , isArray = Array.isArray, concat = Array.prototype.concat
+  , forEach = Array.prototype.forEach
+
+  , isSpreadable;
+
+isSpreadable = function (value) {
+       if (!value) return false;
+       if (!isObject(value)) return false;
+       if (value['@@isConcatSpreadable'] !== undefined) {
+               return Boolean(value['@@isConcatSpreadable']);
+       }
+       return isArray(value);
+};
+
+module.exports = function (item/*, …items*/) {
+       var result;
+       if (!this || !isArray(this) || isPlainArray(this)) {
+               return concat.apply(this, arguments);
+       }
+       result = new this.constructor(this.length);
+       forEach.call(this, function (val, i) { result[i] = val; });
+       forEach.call(arguments, function (arg) {
+               var base;
+               if (isSpreadable(arg)) {
+                       base = result.length;
+                       result.length += toPosInt(arg.length);
+                       forEach.call(arg, function (val, i) { result[base + i] = val; });
+                       return;
+               }
+               result.push(arg);
+       });
+       return result;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/contains.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/contains.js
new file mode 100644 (file)
index 0000000..4a2f9f6
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var indexOf = require('./e-index-of');
+
+module.exports = function (searchElement/*, position*/) {
+       return indexOf.call(this, searchElement, arguments[1]) > -1;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/implement.js
new file mode 100644 (file)
index 0000000..eedbad7
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Array.prototype, 'copyWithin',
+               { value: require('./shim'), configurable: true, enumerable: false,
+                       writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/index.js
new file mode 100644 (file)
index 0000000..bb89d0b
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+module.exports = require('./is-implemented')() ?
+               Array.prototype.copyWithin : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/is-implemented.js
new file mode 100644 (file)
index 0000000..8f17e06
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var arr = [1, 2, 3, 4, 5];
+       if (typeof arr.copyWithin !== 'function') return false;
+       return String(arr.copyWithin(1, 3)) === '1,4,5,4,5';
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/shim.js
new file mode 100644 (file)
index 0000000..c0bfb8b
--- /dev/null
@@ -0,0 +1,39 @@
+// Taken from: https://github.com/paulmillr/es6-shim/
+
+'use strict';
+
+var toInteger  = require('../../../number/to-integer')
+  , toPosInt   = require('../../../number/to-pos-integer')
+  , validValue = require('../../../object/valid-value')
+
+  , hasOwnProperty = Object.prototype.hasOwnProperty
+  , max = Math.max, min = Math.min;
+
+module.exports = function (target, start/*, end*/) {
+       var o = validValue(this), end = arguments[2], l = toPosInt(o.length)
+         , to, from, fin, count, direction;
+
+       target = toInteger(target);
+       start = toInteger(start);
+       end = (end === undefined) ? l : toInteger(end);
+
+       to = target < 0 ? max(l + target, 0) : min(target, l);
+       from = start < 0 ? max(l + start, 0) : min(start, l);
+       fin = end < 0 ? max(l + end, 0) : min(end, l);
+       count = min(fin - from, l - to);
+       direction = 1;
+
+       if ((from < to) && (to < (from + count))) {
+               direction = -1;
+               from += count - 1;
+               to += count - 1;
+       }
+       while (count > 0) {
+               if (hasOwnProperty.call(o, from)) o[to] = o[from];
+               else delete o[from];
+               from += direction;
+               to += direction;
+               count -= 1;
+       }
+       return o;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/diff.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/diff.js
new file mode 100644 (file)
index 0000000..a1f9541
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+var value    = require('../../object/valid-value')
+  , contains = require('./contains')
+
+  , filter = Array.prototype.filter;
+
+module.exports = function (other) {
+       (value(this) && value(other));
+       return filter.call(this, function (item) {
+               return !contains.call(other, item);
+       });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/e-index-of.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/e-index-of.js
new file mode 100644 (file)
index 0000000..80864d0
--- /dev/null
@@ -0,0 +1,29 @@
+'use strict';
+
+var toPosInt = require('../../number/to-pos-integer')
+  , value    = require('../../object/valid-value')
+
+  , indexOf = Array.prototype.indexOf
+  , hasOwnProperty = Object.prototype.hasOwnProperty
+  , abs = Math.abs, floor = Math.floor;
+
+module.exports = function (searchElement/*, fromIndex*/) {
+       var i, l, fromIndex, val;
+       if (searchElement === searchElement) { //jslint: ignore
+               return indexOf.apply(this, arguments);
+       }
+
+       l = toPosInt(value(this).length);
+       fromIndex = arguments[1];
+       if (isNaN(fromIndex)) fromIndex = 0;
+       else if (fromIndex >= 0) fromIndex = floor(fromIndex);
+       else fromIndex = toPosInt(this.length) - floor(abs(fromIndex));
+
+       for (i = fromIndex; i < l; ++i) {
+               if (hasOwnProperty.call(this, i)) {
+                       val = this[i];
+                       if (val !== val) return i; //jslint: ignore
+               }
+       }
+       return -1;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/e-last-index-of.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/e-last-index-of.js
new file mode 100644 (file)
index 0000000..4fc536b
--- /dev/null
@@ -0,0 +1,29 @@
+'use strict';
+
+var toPosInt = require('../../number/to-pos-integer')
+  , value    = require('../../object/valid-value')
+
+  , lastIndexOf = Array.prototype.lastIndexOf
+  , hasOwnProperty = Object.prototype.hasOwnProperty
+  , abs = Math.abs, floor = Math.floor;
+
+module.exports = function (searchElement/*, fromIndex*/) {
+       var i, fromIndex, val;
+       if (searchElement === searchElement) { //jslint: ignore
+               return lastIndexOf.apply(this, arguments);
+       }
+
+       value(this);
+       fromIndex = arguments[1];
+       if (isNaN(fromIndex)) fromIndex = (toPosInt(this.length) - 1);
+       else if (fromIndex >= 0) fromIndex = floor(fromIndex);
+       else fromIndex = toPosInt(this.length) - floor(abs(fromIndex));
+
+       for (i = fromIndex; i >= 0; --i) {
+               if (hasOwnProperty.call(this, i)) {
+                       val = this[i];
+                       if (val !== val) return i; //jslint: ignore
+               }
+       }
+       return -1;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/implement.js
new file mode 100644 (file)
index 0000000..490de60
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Array.prototype, 'entries', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/index.js
new file mode 100644 (file)
index 0000000..292792c
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+module.exports = require('./is-implemented')() ?
+               Array.prototype.entries : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/is-implemented.js
new file mode 100644 (file)
index 0000000..e186c17
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+module.exports = function () {
+       var arr = [1, 'foo'], iterator, result;
+       if (typeof arr.entries !== 'function') return false;
+       iterator = arr.entries();
+       if (!iterator) return false;
+       if (typeof iterator.next !== 'function') return false;
+       result = iterator.next();
+       if (!result || !result.value) return false;
+       if (result.value[0] !== 0) return false;
+       if (result.value[1] !== 1) return false;
+       if (result.done !== false) return false;
+       return true;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/shim.js
new file mode 100644 (file)
index 0000000..c052b53
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+var ArrayIterator = require('es6-iterator/array');
+module.exports = function () { return new ArrayIterator(this, 'key+value'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/exclusion.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/exclusion.js
new file mode 100644 (file)
index 0000000..f08adc8
--- /dev/null
@@ -0,0 +1,27 @@
+'use strict';
+
+var value    = require('../../object/valid-value')
+  , aFrom    = require('../from')
+  , toArray  = require('../to-array')
+  , contains = require('./contains')
+  , byLength = require('./_compare-by-length')
+
+  , filter = Array.prototype.filter, push = Array.prototype.push;
+
+module.exports = function (/*…lists*/) {
+       var lists, seen, result;
+       if (!arguments.length) return aFrom(this);
+       push.apply(lists = [this], arguments);
+       lists.forEach(value);
+       seen = [];
+       result = [];
+       lists.sort(byLength).forEach(function (list) {
+               result = result.filter(function (item) {
+                       return !contains.call(list, item);
+               }).concat(filter.call(list, function (x) {
+                       return !contains.call(seen, x);
+               }));
+               push.apply(seen, toArray(list));
+       });
+       return result;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/implement.js
new file mode 100644 (file)
index 0000000..2251191
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Array.prototype, 'fill', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/index.js
new file mode 100644 (file)
index 0000000..36c1f66
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+module.exports = require('./is-implemented')() ?
+               Array.prototype.fill : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/is-implemented.js
new file mode 100644 (file)
index 0000000..b8e5468
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var arr = [1, 2, 3, 4, 5, 6];
+       if (typeof arr.fill !== 'function') return false;
+       return String(arr.fill(-1, -3)) === '1,2,3,-1,-1,-1';
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/shim.js
new file mode 100644 (file)
index 0000000..45823be
--- /dev/null
@@ -0,0 +1,21 @@
+// Taken from: https://github.com/paulmillr/es6-shim/
+
+'use strict';
+
+var toInteger  = require('../../../number/to-integer')
+  , toPosInt   = require('../../../number/to-pos-integer')
+  , validValue = require('../../../object/valid-value')
+
+  , max = Math.max, min = Math.min;
+
+module.exports = function (value/*, start, end*/) {
+       var o = validValue(this), start = arguments[1], end = arguments[2]
+         , l = toPosInt(o.length), relativeStart, i;
+
+       start = (start === undefined) ? 0 : toInteger(start);
+       end = (end === undefined) ? l : toInteger(end);
+
+       relativeStart = start < 0 ? max(l + start, 0) : min(start, l);
+       for (i = relativeStart; i < l && i < end; ++i) o[i] = value;
+       return o;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/implement.js
new file mode 100644 (file)
index 0000000..090c5f1
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Array.prototype, 'filter', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/index.js
new file mode 100644 (file)
index 0000000..bcf0268
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+module.exports = require('./is-implemented')() ?
+               Array.prototype.filter : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/is-implemented.js
new file mode 100644 (file)
index 0000000..5577273
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var SubArray = require('../../_sub-array-dummy-safe')
+
+  , pass = function () { return true; };
+
+module.exports = function () {
+       return (new SubArray()).filter(pass) instanceof SubArray;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/shim.js
new file mode 100644 (file)
index 0000000..b0116de
--- /dev/null
@@ -0,0 +1,22 @@
+'use strict';
+
+var isPlainArray = require('../../is-plain-array')
+  , callable     = require('../../../object/valid-callable')
+
+  , isArray = Array.isArray, filter = Array.prototype.filter
+  , forEach = Array.prototype.forEach, call = Function.prototype.call;
+
+module.exports = function (callbackFn/*, thisArg*/) {
+       var result, thisArg, i;
+       if (!this || !isArray(this) || isPlainArray(this)) {
+               return filter.apply(this, arguments);
+       }
+       callable(callbackFn);
+       thisArg = arguments[1];
+       result = new this.constructor();
+       i = 0;
+       forEach.call(this, function (val, j, self) {
+               if (call.call(callbackFn, thisArg, val, j, self)) result[i++] = val;
+       });
+       return result;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/implement.js
new file mode 100644 (file)
index 0000000..556cb84
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Array.prototype, 'findIndex',
+               { value: require('./shim'),
+                       configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/index.js
new file mode 100644 (file)
index 0000000..03a987e
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+module.exports = require('./is-implemented')() ?
+               Array.prototype.findIndex : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/is-implemented.js
new file mode 100644 (file)
index 0000000..dbd3c81
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var fn = function (x) { return x > 3; };
+
+module.exports = function () {
+       var arr = [1, 2, 3, 4, 5, 6];
+       if (typeof arr.findIndex !== 'function') return false;
+       return arr.findIndex(fn) === 3;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/shim.js
new file mode 100644 (file)
index 0000000..957939f
--- /dev/null
@@ -0,0 +1,20 @@
+'use strict';
+
+var callable = require('../../../object/valid-callable')
+  , value    = require('../../../object/valid-value')
+
+  , some = Array.prototype.some, apply = Function.prototype.apply;
+
+module.exports = function (predicate/*, thisArg*/) {
+       var k, self;
+       self = Object(value(this));
+       callable(predicate);
+
+       return some.call(self, function (value, index) {
+               if (apply.call(predicate, this, arguments)) {
+                       k = index;
+                       return true;
+               }
+               return false;
+       }, arguments[1]) ? k : -1;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/implement.js
new file mode 100644 (file)
index 0000000..0f37104
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Array.prototype, 'find', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/index.js
new file mode 100644 (file)
index 0000000..96819d0
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+module.exports = require('./is-implemented')() ?
+               Array.prototype.find : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/is-implemented.js
new file mode 100644 (file)
index 0000000..cc7ec77
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var fn = function (x) { return x > 3; };
+
+module.exports = function () {
+       var arr = [1, 2, 3, 4, 5, 6];
+       if (typeof arr.find !== 'function') return false;
+       return arr.find(fn) === 4;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/shim.js
new file mode 100644 (file)
index 0000000..c7ee906
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var findIndex = require('../find-index/shim');
+
+module.exports = function (predicate/*, thisArg*/) {
+       var index = findIndex.apply(this, arguments);
+       return (index === -1) ? undefined : this[index];
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/first-index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/first-index.js
new file mode 100644 (file)
index 0000000..7a9e4c3
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var toPosInt = require('../../number/to-pos-integer')
+  , value    = require('../../object/valid-value')
+
+  , hasOwnProperty = Object.prototype.hasOwnProperty;
+
+module.exports = function () {
+       var i, l;
+       if (!(l = toPosInt(value(this).length))) return null;
+       i = 0;
+       while (!hasOwnProperty.call(this, i)) {
+               if (++i === l) return null;
+       }
+       return i;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/first.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/first.js
new file mode 100644 (file)
index 0000000..11df571
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var firstIndex = require('./first-index');
+
+module.exports = function () {
+       var i;
+       if ((i = firstIndex.call(this)) !== null) return this[i];
+       return undefined;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/flatten.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/flatten.js
new file mode 100644 (file)
index 0000000..c95407d
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+var isArray = Array.isArray, forEach = Array.prototype.forEach
+  , push = Array.prototype.push;
+
+module.exports = function flatten() {
+       var r = [];
+       forEach.call(this, function (x) {
+               push.apply(r, isArray(x) ? flatten.call(x) : [x]);
+       });
+       return r;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/for-each-right.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/for-each-right.js
new file mode 100644 (file)
index 0000000..2f0ffae
--- /dev/null
@@ -0,0 +1,20 @@
+'use strict';
+
+var toPosInt = require('../../number/to-pos-integer')
+  , callable = require('../../object/valid-callable')
+  , value    = require('../../object/valid-value')
+
+  , hasOwnProperty = Object.prototype.hasOwnProperty
+  , call = Function.prototype.call;
+
+module.exports = function (cb/*, thisArg*/) {
+       var i, self, thisArg;
+
+       self = Object(value(this));
+       callable(cb);
+       thisArg = arguments[1];
+
+       for (i = toPosInt(self.length); i >= 0; --i) {
+               if (hasOwnProperty.call(self, i)) call.call(cb, thisArg, self[i], i, self);
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/group.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/group.js
new file mode 100644 (file)
index 0000000..fbb178c
--- /dev/null
@@ -0,0 +1,23 @@
+// Inspired by Underscore's groupBy:
+// http://documentcloud.github.com/underscore/#groupBy
+
+'use strict';
+
+var callable = require('../../object/valid-callable')
+  , value    = require('../../object/valid-value')
+
+  , forEach = Array.prototype.forEach, apply = Function.prototype.apply;
+
+module.exports = function (cb/*, thisArg*/) {
+       var r;
+
+       (value(this) && callable(cb));
+
+       r = {};
+       forEach.call(this, function (v) {
+               var key = apply.call(cb, this, arguments);
+               if (!r.hasOwnProperty(key)) r[key] = [];
+               r[key].push(v);
+       }, arguments[1]);
+       return r;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/index.js
new file mode 100644 (file)
index 0000000..97ef65c
--- /dev/null
@@ -0,0 +1,40 @@
+'use strict';
+
+module.exports = {
+       '@@iterator':   require('./@@iterator'),
+       binarySearch:   require('./binary-search'),
+       clear:          require('./clear'),
+       compact:        require('./compact'),
+       concat:         require('./concat'),
+       contains:       require('./contains'),
+       copyWithin:     require('./copy-within'),
+       diff:           require('./diff'),
+       eIndexOf:       require('./e-index-of'),
+       eLastIndexOf:   require('./e-last-index-of'),
+       entries:        require('./entries'),
+       exclusion:      require('./exclusion'),
+       fill:           require('./fill'),
+       filter:         require('./filter'),
+       find:           require('./find'),
+       findIndex:      require('./find-index'),
+       first:          require('./first'),
+       firstIndex:     require('./first-index'),
+       flatten:        require('./flatten'),
+       forEachRight:   require('./for-each-right'),
+       keys:           require('./keys'),
+       group:          require('./group'),
+       indexesOf:      require('./indexes-of'),
+       intersection:   require('./intersection'),
+       isCopy:         require('./is-copy'),
+       isUniq:         require('./is-uniq'),
+       last:           require('./last'),
+       lastIndex:      require('./last-index'),
+       map:            require('./map'),
+       remove:         require('./remove'),
+       separate:       require('./separate'),
+       slice:          require('./slice'),
+       someRight:      require('./some-right'),
+       splice:         require('./splice'),
+       uniq:           require('./uniq'),
+       values:         require('./values')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/indexes-of.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/indexes-of.js
new file mode 100644 (file)
index 0000000..6b89157
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+var indexOf = require('./e-index-of');
+
+module.exports = function (value/*, fromIndex*/) {
+       var r = [], i, fromIndex = arguments[1];
+       while ((i = indexOf.call(this, value, fromIndex)) !== -1) {
+               r.push(i);
+               fromIndex = i + 1;
+       }
+       return r;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/intersection.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/intersection.js
new file mode 100644 (file)
index 0000000..fadcb52
--- /dev/null
@@ -0,0 +1,19 @@
+'use strict';
+
+var value    = require('../../object/valid-value')
+  , contains = require('./contains')
+  , byLength = require('./_compare-by-length')
+
+  , filter = Array.prototype.filter, push = Array.prototype.push
+  , slice = Array.prototype.slice;
+
+module.exports = function (/*…list*/) {
+       var lists;
+       if (!arguments.length) slice.call(this);
+       push.apply(lists = [this], arguments);
+       lists.forEach(value);
+       lists.sort(byLength);
+       return lists.reduce(function (a, b) {
+               return filter.call(a, function (x) { return contains.call(b, x); });
+       });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/is-copy.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/is-copy.js
new file mode 100644 (file)
index 0000000..ac7c79b
--- /dev/null
@@ -0,0 +1,21 @@
+'use strict';
+
+var toPosInt = require('../../number/to-pos-integer')
+  , eq    = require('../../object/eq')
+  , value = require('../../object/valid-value')
+
+  , hasOwnProperty = Object.prototype.hasOwnProperty;
+
+module.exports = function (other) {
+       var i, l;
+       (value(this) && value(other));
+       l = toPosInt(this.length);
+       if (l !== toPosInt(other.length)) return false;
+       for (i = 0; i < l; ++i) {
+               if (hasOwnProperty.call(this, i) !== hasOwnProperty.call(other, i)) {
+                       return false;
+               }
+               if (!eq(this[i], other[i])) return false;
+       }
+       return true;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/is-uniq.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/is-uniq.js
new file mode 100644 (file)
index 0000000..b14f461
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+var indexOf = require('./e-index-of')
+
+  , every = Array.prototype.every
+  , isFirst;
+
+isFirst = function (value, index) {
+       return indexOf.call(this, value) === index;
+};
+
+module.exports = function () { return every.call(this, isFirst, this); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/implement.js
new file mode 100644 (file)
index 0000000..e18e617
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Array.prototype, 'keys', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/index.js
new file mode 100644 (file)
index 0000000..2f89cff
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+module.exports = require('./is-implemented')() ?
+               Array.prototype.keys : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/is-implemented.js
new file mode 100644 (file)
index 0000000..06bd87b
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+module.exports = function () {
+       var arr = [1, 'foo'], iterator, result;
+       if (typeof arr.keys !== 'function') return false;
+       iterator = arr.keys();
+       if (!iterator) return false;
+       if (typeof iterator.next !== 'function') return false;
+       result = iterator.next();
+       if (!result) return false;
+       if (result.value !== 0) return false;
+       if (result.done !== false) return false;
+       return true;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/shim.js
new file mode 100644 (file)
index 0000000..83773f6
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+var ArrayIterator = require('es6-iterator/array');
+module.exports = function () { return new ArrayIterator(this, 'key'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/last-index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/last-index.js
new file mode 100644 (file)
index 0000000..a191d6e
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var toPosInt = require('../../number/to-pos-integer')
+  , value    = require('../../object/valid-value')
+
+  , hasOwnProperty = Object.prototype.hasOwnProperty;
+
+module.exports = function () {
+       var i, l;
+       if (!(l = toPosInt(value(this).length))) return null;
+       i = l - 1;
+       while (!hasOwnProperty.call(this, i)) {
+               if (--i === -1) return null;
+       }
+       return i;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/last.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/last.js
new file mode 100644 (file)
index 0000000..bf9d2f2
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var lastIndex = require('./last-index');
+
+module.exports = function () {
+       var i;
+       if ((i = lastIndex.call(this)) !== null) return this[i];
+       return undefined;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/implement.js
new file mode 100644 (file)
index 0000000..3aabb87
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Array.prototype, 'map', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/index.js
new file mode 100644 (file)
index 0000000..66f6660
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+module.exports = require('./is-implemented')() ?
+               Array.prototype.map : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/is-implemented.js
new file mode 100644 (file)
index 0000000..c328b47
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var identity = require('../../../function/identity')
+  , SubArray = require('../../_sub-array-dummy-safe');
+
+module.exports = function () {
+       return (new SubArray()).map(identity) instanceof SubArray;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/shim.js
new file mode 100644 (file)
index 0000000..2ee7313
--- /dev/null
@@ -0,0 +1,21 @@
+'use strict';
+
+var isPlainArray = require('../../is-plain-array')
+  , callable     = require('../../../object/valid-callable')
+
+  , isArray = Array.isArray, map = Array.prototype.map
+  , forEach = Array.prototype.forEach, call = Function.prototype.call;
+
+module.exports = function (callbackFn/*, thisArg*/) {
+       var result, thisArg;
+       if (!this || !isArray(this) || isPlainArray(this)) {
+               return map.apply(this, arguments);
+       }
+       callable(callbackFn);
+       thisArg = arguments[1];
+       result = new this.constructor(this.length);
+       forEach.call(this, function (val, i, self) {
+               result[i] = call.call(callbackFn, thisArg, val, i, self);
+       });
+       return result;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/remove.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/remove.js
new file mode 100644 (file)
index 0000000..dcf8433
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+var indexOf = require('./e-index-of')
+
+  , forEach = Array.prototype.forEach, splice = Array.prototype.splice;
+
+module.exports = function (item/*, …item*/) {
+       forEach.call(arguments, function (item) {
+               var index = indexOf.call(this, item);
+               if (index !== -1) splice.call(this, index, 1);
+       }, this);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/separate.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/separate.js
new file mode 100644 (file)
index 0000000..dc974b8
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+var forEach = Array.prototype.forEach;
+
+module.exports = function (sep) {
+       var result = [];
+       forEach.call(this, function (val, i) { result.push(val, sep); });
+       result.pop();
+       return result;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/implement.js
new file mode 100644 (file)
index 0000000..cd488a0
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Array.prototype, 'slice', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/index.js
new file mode 100644 (file)
index 0000000..72200ca
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Array.prototype.slice : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/is-implemented.js
new file mode 100644 (file)
index 0000000..ec1985e
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var SubArray = require('../../_sub-array-dummy-safe');
+
+module.exports = function () {
+       return (new SubArray()).slice() instanceof SubArray;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/shim.js
new file mode 100644 (file)
index 0000000..2761a1a
--- /dev/null
@@ -0,0 +1,35 @@
+'use strict';
+
+var toInteger    = require('../../../number/to-integer')
+  , toPosInt     = require('../../../number/to-pos-integer')
+  , isPlainArray = require('../../is-plain-array')
+
+  , isArray = Array.isArray, slice = Array.prototype.slice
+  , hasOwnProperty = Object.prototype.hasOwnProperty, max = Math.max;
+
+module.exports = function (start, end) {
+       var length, result, i;
+       if (!this || !isArray(this) || isPlainArray(this)) {
+               return slice.apply(this, arguments);
+       }
+       length = toPosInt(this.length);
+       start = toInteger(start);
+       if (start < 0) start = max(length + start, 0);
+       else if (start > length) start = length;
+       if (end === undefined) {
+               end = length;
+       } else {
+               end = toInteger(end);
+               if (end < 0) end = max(length + end, 0);
+               else if (end > length) end = length;
+       }
+       if (start > end) start = end;
+       result = new this.constructor(end - start);
+       i = 0;
+       while (start !== end) {
+               if (hasOwnProperty.call(this, start)) result[i] = this[start];
+               ++i;
+               ++start;
+       }
+       return result;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/some-right.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/some-right.js
new file mode 100644 (file)
index 0000000..de7460d
--- /dev/null
@@ -0,0 +1,22 @@
+'use strict';
+
+var callable = require('../../object/valid-callable')
+  , value    = require('../../object/valid-value')
+
+  , hasOwnProperty = Object.prototype.hasOwnProperty
+  , call = Function.prototype.call;
+
+module.exports = function (cb/*, thisArg*/) {
+       var i, self, thisArg;
+       self = Object(value(this));
+       callable(cb);
+       thisArg = arguments[1];
+
+       for (i = self.length; i >= 0; --i) {
+               if (hasOwnProperty.call(self, i) &&
+                               call.call(cb, thisArg, self[i], i, self)) {
+                       return true;
+               }
+       }
+       return false;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/implement.js
new file mode 100644 (file)
index 0000000..aab1f8e
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Array.prototype, 'splice', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/index.js
new file mode 100644 (file)
index 0000000..e8ecf3c
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Array.prototype.splice : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/is-implemented.js
new file mode 100644 (file)
index 0000000..ffddaa8
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var SubArray = require('../../_sub-array-dummy-safe');
+
+module.exports = function () {
+       return (new SubArray()).splice(0) instanceof SubArray;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/shim.js
new file mode 100644 (file)
index 0000000..a8505a2
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+var isPlainArray = require('../../is-plain-array')
+
+  , isArray = Array.isArray, splice = Array.prototype.splice
+  , forEach = Array.prototype.forEach;
+
+module.exports = function (start, deleteCount/*, …items*/) {
+       var arr = splice.apply(this, arguments), result;
+       if (!this || !isArray(this) || isPlainArray(this)) return arr;
+       result = new this.constructor(arr.length);
+       forEach.call(arr, function (val, i) { result[i] = val; });
+       return result;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/uniq.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/uniq.js
new file mode 100644 (file)
index 0000000..db01465
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+var indexOf = require('./e-index-of')
+
+  , filter = Array.prototype.filter
+
+  , isFirst;
+
+isFirst = function (value, index) {
+       return indexOf.call(this, value) === index;
+};
+
+module.exports = function () { return filter.call(this, isFirst, this); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/implement.js
new file mode 100644 (file)
index 0000000..237281f
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Array.prototype, 'values', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/index.js
new file mode 100644 (file)
index 0000000..c0832c3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./is-implemented')() ? Array.prototype.values : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/is-implemented.js
new file mode 100644 (file)
index 0000000..cc0c629
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+module.exports = function () {
+       var arr = ['foo', 1], iterator, result;
+       if (typeof arr.values !== 'function') return false;
+       iterator = arr.values();
+       if (!iterator) return false;
+       if (typeof iterator.next !== 'function') return false;
+       result = iterator.next();
+       if (!result) return false;
+       if (result.value !== 'foo') return false;
+       if (result.done !== false) return false;
+       return true;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/shim.js
new file mode 100644 (file)
index 0000000..f6555fd
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+var ArrayIterator = require('es6-iterator/array');
+module.exports = function () { return new ArrayIterator(this, 'value'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/_is-extensible.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/_is-extensible.js
new file mode 100644 (file)
index 0000000..6123206
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+module.exports = (function () {
+       var SubArray = require('./_sub-array-dummy'), arr;
+
+       if (!SubArray) return false;
+       arr = new SubArray();
+       if (!Array.isArray(arr)) return false;
+       if (!(arr instanceof SubArray)) return false;
+
+       arr[34] = 'foo';
+       return (arr.length === 35);
+}());
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/_sub-array-dummy-safe.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/_sub-array-dummy-safe.js
new file mode 100644 (file)
index 0000000..5baf8a8
--- /dev/null
@@ -0,0 +1,23 @@
+'use strict';
+
+var setPrototypeOf = require('../object/set-prototype-of')
+  , isExtensible   = require('./_is-extensible');
+
+module.exports = (function () {
+       var SubArray;
+
+       if (isExtensible) return require('./_sub-array-dummy');
+
+       if (!setPrototypeOf) return null;
+       SubArray = function () {
+               var arr = Array.apply(this, arguments);
+               setPrototypeOf(arr, SubArray.prototype);
+               return arr;
+       };
+       setPrototypeOf(SubArray, Array);
+       SubArray.prototype = Object.create(Array.prototype, {
+               constructor: { value: SubArray, enumerable: false, writable: true,
+                       configurable: true }
+       });
+       return SubArray;
+}());
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/_sub-array-dummy.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/_sub-array-dummy.js
new file mode 100644 (file)
index 0000000..a926d1a
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var setPrototypeOf = require('../object/set-prototype-of');
+
+module.exports = (function () {
+       var SubArray;
+
+       if (!setPrototypeOf) return null;
+       SubArray = function () { Array.apply(this, arguments); };
+       setPrototypeOf(SubArray, Array);
+       SubArray.prototype = Object.create(Array.prototype, {
+               constructor: { value: SubArray, enumerable: false, writable: true,
+                       configurable: true }
+       });
+       return SubArray;
+}());
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/implement.js
new file mode 100644 (file)
index 0000000..f3411b1
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Array, 'from', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/index.js
new file mode 100644 (file)
index 0000000..3b99cda
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Array.from
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/is-implemented.js
new file mode 100644 (file)
index 0000000..63ff2a5
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function () {
+       var from = Array.from, arr, result;
+       if (typeof from !== 'function') return false;
+       arr = ['raz', 'dwa'];
+       result = from(arr);
+       return Boolean(result && (result !== arr) && (result[1] === 'dwa'));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/shim.js
new file mode 100644 (file)
index 0000000..a90ba2f
--- /dev/null
@@ -0,0 +1,106 @@
+'use strict';
+
+var iteratorSymbol = require('es6-symbol').iterator
+  , isArguments    = require('../../function/is-arguments')
+  , isFunction     = require('../../function/is-function')
+  , toPosInt       = require('../../number/to-pos-integer')
+  , callable       = require('../../object/valid-callable')
+  , validValue     = require('../../object/valid-value')
+  , isString       = require('../../string/is-string')
+
+  , isArray = Array.isArray, call = Function.prototype.call
+  , desc = { configurable: true, enumerable: true, writable: true, value: null }
+  , defineProperty = Object.defineProperty;
+
+module.exports = function (arrayLike/*, mapFn, thisArg*/) {
+       var mapFn = arguments[1], thisArg = arguments[2], Constructor, i, j, arr, l, code, iterator
+         , result, getIterator, value;
+
+       arrayLike = Object(validValue(arrayLike));
+
+       if (mapFn != null) callable(mapFn);
+       if (!this || (this === Array) || !isFunction(this)) {
+               // Result: Plain array
+               if (!mapFn) {
+                       if (isArguments(arrayLike)) {
+                               // Source: Arguments
+                               l = arrayLike.length;
+                               if (l !== 1) return Array.apply(null, arrayLike);
+                               arr = new Array(1);
+                               arr[0] = arrayLike[0];
+                               return arr;
+                       }
+                       if (isArray(arrayLike)) {
+                               // Source: Array
+                               arr = new Array(l = arrayLike.length);
+                               for (i = 0; i < l; ++i) arr[i] = arrayLike[i];
+                               return arr;
+                       }
+               }
+               arr = [];
+       } else {
+               // Result: Non plain array
+               Constructor = this;
+       }
+
+       if (!isArray(arrayLike)) {
+               if ((getIterator = arrayLike[iteratorSymbol]) !== undefined) {
+                       // Source: Iterator
+                       iterator = callable(getIterator).call(arrayLike);
+                       if (Constructor) arr = new Constructor();
+                       result = iterator.next();
+                       i = 0;
+                       while (!result.done) {
+                               value = mapFn ? call.call(mapFn, thisArg, result.value, i) : result.value;
+                               if (!Constructor) {
+                                       arr[i] = value;
+                               } else {
+                                       desc.value = value;
+                                       defineProperty(arr, i, desc);
+                               }
+                               result = iterator.next();
+                               ++i;
+                       }
+                       l = i;
+               } else if (isString(arrayLike)) {
+                       // Source: String
+                       l = arrayLike.length;
+                       if (Constructor) arr = new Constructor();
+                       for (i = 0, j = 0; i < l; ++i) {
+                               value = arrayLike[i];
+                               if ((i + 1) < l) {
+                                       code = value.charCodeAt(0);
+                                       if ((code >= 0xD800) && (code <= 0xDBFF)) value += arrayLike[++i];
+                               }
+                               value = mapFn ? call.call(mapFn, thisArg, value, j) : value;
+                               if (!Constructor) {
+                                       arr[j] = value;
+                               } else {
+                                       desc.value = value;
+                                       defineProperty(arr, j, desc);
+                               }
+                               ++j;
+                       }
+                       l = j;
+               }
+       }
+       if (l === undefined) {
+               // Source: array or array-like
+               l = toPosInt(arrayLike.length);
+               if (Constructor) arr = new Constructor(l);
+               for (i = 0; i < l; ++i) {
+                       value = mapFn ? call.call(mapFn, thisArg, arrayLike[i], i) : arrayLike[i];
+                       if (!Constructor) {
+                               arr[i] = value;
+                       } else {
+                               desc.value = value;
+                               defineProperty(arr, i, desc);
+                       }
+               }
+       }
+       if (Constructor) {
+               desc.value = null;
+               arr.length = l;
+       }
+       return arr;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/generate.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/generate.js
new file mode 100644 (file)
index 0000000..5e06675
--- /dev/null
@@ -0,0 +1,20 @@
+'use strict';
+
+var toPosInt = require('../number/to-pos-integer')
+  , value    = require('../object/valid-value')
+
+  , slice = Array.prototype.slice;
+
+module.exports = function (length/*, …fill*/) {
+       var arr, l;
+       length = toPosInt(value(length));
+       if (length === 0) return [];
+
+       arr = (arguments.length < 2) ? [undefined] :
+                       slice.call(arguments, 1, 1 + length);
+
+       while ((l = arr.length) < length) {
+               arr = arr.concat(arr.slice(0, length - l));
+       }
+       return arr;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/index.js
new file mode 100644 (file)
index 0000000..7a68678
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = {
+       '#':          require('./#'),
+       from:         require('./from'),
+       generate:     require('./generate'),
+       isPlainArray: require('./is-plain-array'),
+       of:           require('./of'),
+       toArray:      require('./to-array'),
+       validArray:   require('./valid-array')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/is-plain-array.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/is-plain-array.js
new file mode 100644 (file)
index 0000000..6b37e40
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+var isArray = Array.isArray, getPrototypeOf = Object.getPrototypeOf;
+
+module.exports = function (obj) {
+       var proto;
+       if (!obj || !isArray(obj)) return false;
+       proto = getPrototypeOf(obj);
+       if (!isArray(proto)) return false;
+       return !isArray(getPrototypeOf(proto));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/implement.js
new file mode 100644 (file)
index 0000000..bf2a5a5
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Array, 'of', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/index.js
new file mode 100644 (file)
index 0000000..07ee54d
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Array.of
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/is-implemented.js
new file mode 100644 (file)
index 0000000..4390a10
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = function () {
+       var of = Array.of, result;
+       if (typeof of !== 'function') return false;
+       result = of('foo', 'bar');
+       return Boolean(result && (result[1] === 'bar'));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/shim.js
new file mode 100644 (file)
index 0000000..de72bc9
--- /dev/null
@@ -0,0 +1,19 @@
+'use strict';
+
+var isFunction = require('../../function/is-function')
+
+  , slice = Array.prototype.slice, defineProperty = Object.defineProperty
+  , desc = { configurable: true, enumerable: true, writable: true, value: null };
+
+module.exports = function (/*…items*/) {
+       var result, i, l;
+       if (!this || (this === Array) || !isFunction(this)) return slice.call(arguments);
+       result = new this(l = arguments.length);
+       for (i = 0; i < l; ++i) {
+               desc.value = arguments[i];
+               defineProperty(result, i, desc);
+       }
+       desc.value = null;
+       result.length = l;
+       return result;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/to-array.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/to-array.js
new file mode 100644 (file)
index 0000000..ce908dd
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var from = require('./from')
+
+  , isArray = Array.isArray;
+
+module.exports = function (arrayLike) {
+       return isArray(arrayLike) ? arrayLike : from(arrayLike);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/valid-array.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/valid-array.js
new file mode 100644 (file)
index 0000000..d86a8f5
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var isArray = Array.isArray;
+
+module.exports = function (value) {
+       if (isArray(value)) return value;
+       throw new TypeError(value + " is not an array");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/boolean/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/boolean/index.js
new file mode 100644 (file)
index 0000000..c193b94
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = {
+       isBoolean: require('./is-boolean')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/boolean/is-boolean.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/boolean/is-boolean.js
new file mode 100644 (file)
index 0000000..5d1a802
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+var toString = Object.prototype.toString
+
+  , id = toString.call(true);
+
+module.exports = function (x) {
+       return (typeof x === 'boolean') || ((typeof x === 'object') &&
+               ((x instanceof Boolean) || (toString.call(x) === id)));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/copy.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/copy.js
new file mode 100644 (file)
index 0000000..69e2eb0
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var getTime = Date.prototype.getTime;
+
+module.exports = function () { return new Date(getTime.call(this)); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/days-in-month.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/days-in-month.js
new file mode 100644 (file)
index 0000000..e780efe
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+var getMonth = Date.prototype.getMonth;
+
+module.exports = function () {
+       switch (getMonth.call(this)) {
+       case 1:
+               return this.getFullYear() % 4 ? 28 : 29;
+       case 3:
+       case 5:
+       case 8:
+       case 10:
+               return 30;
+       default:
+               return 31;
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/floor-day.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/floor-day.js
new file mode 100644 (file)
index 0000000..0c9eb8b
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var setHours = Date.prototype.setHours;
+
+module.exports = function () {
+       setHours.call(this, 0, 0, 0, 0);
+       return this;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/floor-month.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/floor-month.js
new file mode 100644 (file)
index 0000000..7328c25
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var floorDay = require('./floor-day');
+
+module.exports = function () {
+       floorDay.call(this).setDate(1);
+       return this;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/floor-year.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/floor-year.js
new file mode 100644 (file)
index 0000000..9c50853
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var floorMonth = require('./floor-month');
+
+module.exports = function () {
+       floorMonth.call(this).setMonth(0);
+       return this;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/format.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/format.js
new file mode 100644 (file)
index 0000000..15bd95f
--- /dev/null
@@ -0,0 +1,21 @@
+'use strict';
+
+var pad       = require('../../number/#/pad')
+  , date      = require('../valid-date')
+
+  , format;
+
+format = require('../../string/format-method')({
+       Y: function () { return String(this.getFullYear()); },
+       y: function () { return String(this.getFullYear()).slice(-2); },
+       m: function () { return pad.call(this.getMonth() + 1, 2); },
+       d: function () { return pad.call(this.getDate(), 2); },
+       H: function () { return pad.call(this.getHours(), 2); },
+       M: function () { return pad.call(this.getMinutes(), 2); },
+       S: function () { return pad.call(this.getSeconds(), 2); },
+       L: function () { return pad.call(this.getMilliseconds(), 3); }
+});
+
+module.exports = function (pattern) {
+       return format.call(date(this), pattern);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/index.js
new file mode 100644 (file)
index 0000000..f71b295
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = {
+       copy:        require('./copy'),
+       daysInMonth: require('./days-in-month'),
+       floorDay:    require('./floor-day'),
+       floorMonth:  require('./floor-month'),
+       floorYear:   require('./floor-year'),
+       format:      require('./format')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/index.js
new file mode 100644 (file)
index 0000000..eac33fb
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = {
+       '#':       require('./#'),
+       isDate:    require('./is-date'),
+       validDate: require('./valid-date')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/is-date.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/is-date.js
new file mode 100644 (file)
index 0000000..6ba236e
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var toString = Object.prototype.toString
+
+  , id = toString.call(new Date());
+
+module.exports = function (x) {
+       return (x && ((x instanceof Date) || (toString.call(x) === id))) || false;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/valid-date.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/valid-date.js
new file mode 100644 (file)
index 0000000..7d1a9b6
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var isDate = require('./is-date');
+
+module.exports = function (x) {
+       if (!isDate(x)) throw new TypeError(x + " is not a Date object");
+       return x;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/#/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/#/index.js
new file mode 100644 (file)
index 0000000..b984aa9
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = {
+       throw: require('./throw')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/#/throw.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/#/throw.js
new file mode 100644 (file)
index 0000000..7e15ebd
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var error = require('../valid-error');
+
+module.exports = function () { throw error(this); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/custom.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/custom.js
new file mode 100644 (file)
index 0000000..bbc2dc2
--- /dev/null
@@ -0,0 +1,20 @@
+'use strict';
+
+var assign = require('../object/assign')
+
+  , captureStackTrace = Error.captureStackTrace;
+
+exports = module.exports = function (message/*, code, ext*/) {
+       var err = new Error(), code = arguments[1], ext = arguments[2];
+       if (ext == null) {
+               if (code && (typeof code === 'object')) {
+                       ext = code;
+                       code = null;
+               }
+       }
+       if (ext != null) assign(err, ext);
+       err.message = String(message);
+       if (code != null) err.code = String(code);
+       if (captureStackTrace) captureStackTrace(err, exports);
+       return err;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/index.js
new file mode 100644 (file)
index 0000000..62984b5
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = {
+       '#':        require('./#'),
+       custom:     require('./custom'),
+       isError:    require('./is-error'),
+       validError: require('./valid-error')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/is-error.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/is-error.js
new file mode 100644 (file)
index 0000000..422705f
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var toString = Object.prototype.toString
+
+  , id = toString.call(new Error());
+
+module.exports = function (x) {
+       return (x && ((x instanceof Error) || (toString.call(x)) === id)) || false;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/valid-error.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/valid-error.js
new file mode 100644 (file)
index 0000000..0bef768
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var isError = require('./is-error');
+
+module.exports = function (x) {
+       if (!isError(x)) throw new TypeError(x + " is not an Error object");
+       return x;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/compose.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/compose.js
new file mode 100644 (file)
index 0000000..1da5e01
--- /dev/null
@@ -0,0 +1,20 @@
+'use strict';
+
+var callable = require('../../object/valid-callable')
+  , aFrom    = require('../../array/from')
+
+  , apply = Function.prototype.apply, call = Function.prototype.call
+  , callFn = function (arg, fn) { return call.call(fn, this, arg); };
+
+module.exports = function (fn/*, …fnn*/) {
+       var fns, first;
+       if (!fn) callable(fn);
+       fns = [this].concat(aFrom(arguments));
+       fns.forEach(callable);
+       fns = fns.reverse();
+       first = fns[0];
+       fns = fns.slice(1);
+       return function (arg) {
+               return fns.reduce(callFn, apply.call(first, this, arguments));
+       };
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/copy.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/copy.js
new file mode 100644 (file)
index 0000000..e1467f7
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+var mixin         = require('../../object/mixin')
+  , validFunction = require('../valid-function')
+
+  , re = /^\s*function\s*([\0-'\)-\uffff]+)*\s*\(([\0-\(\*-\uffff]*)\)\s*\{/;
+
+module.exports = function () {
+       var match = String(validFunction(this)).match(re), fn;
+
+       fn = new Function('fn', 'return function ' + match[1].trim() + '(' +
+               match[2] + ') { return fn.apply(this, arguments); };')(this);
+       try { mixin(fn, this); } catch (ignore) {}
+       return fn;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/curry.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/curry.js
new file mode 100644 (file)
index 0000000..943d6fa
--- /dev/null
@@ -0,0 +1,24 @@
+'use strict';
+
+var toPosInt     = require('../../number/to-pos-integer')
+  , callable     = require('../../object/valid-callable')
+  , defineLength = require('../_define-length')
+
+  , slice = Array.prototype.slice, apply = Function.prototype.apply
+  , curry;
+
+curry = function self(fn, length, preArgs) {
+       return defineLength(function () {
+               var args = preArgs ?
+                               preArgs.concat(slice.call(arguments, 0, length - preArgs.length)) :
+                               slice.call(arguments, 0, length);
+               return (args.length === length) ? apply.call(fn, this, args) :
+                               self(fn, length, args);
+       }, preArgs ? (length - preArgs.length) : length);
+};
+
+module.exports = function (/*length*/) {
+       var length = arguments[0];
+       return curry(callable(this),
+               isNaN(length) ? toPosInt(this.length) : toPosInt(length));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/index.js
new file mode 100644 (file)
index 0000000..8d0da00
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = {
+       compose:        require('./compose'),
+       copy:           require('./copy'),
+       curry:          require('./curry'),
+       lock:           require('./lock'),
+       not:            require('./not'),
+       partial:        require('./partial'),
+       spread:         require('./spread'),
+       toStringTokens: require('./to-string-tokens')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/lock.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/lock.js
new file mode 100644 (file)
index 0000000..91e1a65
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+var callable = require('../../object/valid-callable')
+
+  , apply    = Function.prototype.apply;
+
+module.exports = function (/*…args*/) {
+       var fn = callable(this)
+         , args = arguments;
+
+       return function () { return apply.call(fn, this, args); };
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/not.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/not.js
new file mode 100644 (file)
index 0000000..c6dbe97
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+var callable     = require('../../object/valid-callable')
+  , defineLength = require('../_define-length')
+
+  , apply = Function.prototype.apply;
+
+module.exports = function () {
+       var fn = callable(this);
+
+       return defineLength(function () {
+               return !apply.call(fn, this, arguments);
+       }, fn.length);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/partial.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/partial.js
new file mode 100644 (file)
index 0000000..bf31a35
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var callable     = require('../../object/valid-callable')
+  , aFrom        = require('../../array/from')
+  , defineLength = require('../_define-length')
+
+  , apply = Function.prototype.apply;
+
+module.exports = function (/*…args*/) {
+       var fn = callable(this)
+         , args = aFrom(arguments);
+
+       return defineLength(function () {
+               return apply.call(fn, this, args.concat(aFrom(arguments)));
+       }, fn.length - args.length);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/spread.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/spread.js
new file mode 100644 (file)
index 0000000..d7c93b7
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+var callable = require('../../object/valid-callable')
+
+  , apply = Function.prototype.apply;
+
+module.exports = function () {
+       var fn = callable(this);
+       return function (args) { return apply.call(fn, this, args); };
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/to-string-tokens.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/to-string-tokens.js
new file mode 100644 (file)
index 0000000..67afeae
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+var validFunction = require('../valid-function')
+
+  , re = new RegExp('^\\s*function[\\0-\'\\)-\\uffff]*' +
+       '\\(([\\0-\\(\\*-\\uffff]*)\\)\\s*\\{([\\0-\\uffff]*)\\}\\s*$');
+
+module.exports = function () {
+       var data = String(validFunction(this)).match(re);
+       return { args: data[1], body: data[2] };
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/_define-length.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/_define-length.js
new file mode 100644 (file)
index 0000000..496ea62
--- /dev/null
@@ -0,0 +1,44 @@
+'use strict';
+
+var toPosInt = require('../number/to-pos-integer')
+
+  , test = function (a, b) {}, desc, defineProperty
+  , generate, mixin;
+
+try {
+       Object.defineProperty(test, 'length', { configurable: true, writable: false,
+               enumerable: false, value: 1 });
+} catch (ignore) {}
+
+if (test.length === 1) {
+       // ES6
+       desc = { configurable: true, writable: false, enumerable: false };
+       defineProperty = Object.defineProperty;
+       module.exports = function (fn, length) {
+               length = toPosInt(length);
+               if (fn.length === length) return fn;
+               desc.value = length;
+               return defineProperty(fn, 'length', desc);
+       };
+} else {
+       mixin = require('../object/mixin');
+       generate = (function () {
+               var cache = [];
+               return function (l) {
+                       var args, i = 0;
+                       if (cache[l]) return cache[l];
+                       args = [];
+                       while (l--) args.push('a' + (++i).toString(36));
+                       return new Function('fn', 'return function (' + args.join(', ') +
+                               ') { return fn.apply(this, arguments); };');
+               };
+       }());
+       module.exports = function (src, length) {
+               var target;
+               length = toPosInt(length);
+               if (src.length === length) return src;
+               target = generate(length)(src);
+               try { mixin(target, src); } catch (ignore) {}
+               return target;
+       };
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/constant.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/constant.js
new file mode 100644 (file)
index 0000000..10f1e20
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (x) {
+       return function () { return x; };
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/identity.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/identity.js
new file mode 100644 (file)
index 0000000..a9289f0
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (x) { return x; };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/index.js
new file mode 100644 (file)
index 0000000..cfad3f3
--- /dev/null
@@ -0,0 +1,15 @@
+// Export all modules.
+
+'use strict';
+
+module.exports = {
+       '#':           require('./#'),
+       constant:      require('./constant'),
+       identity:      require('./identity'),
+       invoke:        require('./invoke'),
+       isArguments:   require('./is-arguments'),
+       isFunction:    require('./is-function'),
+       noop:          require('./noop'),
+       pluck:         require('./pluck'),
+       validFunction: require('./valid-function')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/invoke.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/invoke.js
new file mode 100644 (file)
index 0000000..9195afd
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+var isCallable = require('../object/is-callable')
+  , value      = require('../object/valid-value')
+
+  , slice = Array.prototype.slice, apply = Function.prototype.apply;
+
+module.exports = function (name/*, …args*/) {
+       var args = slice.call(arguments, 1), isFn = isCallable(name);
+       return function (obj) {
+               value(obj);
+               return apply.call(isFn ? name : obj[name], obj,
+                       args.concat(slice.call(arguments, 1)));
+       };
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/is-arguments.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/is-arguments.js
new file mode 100644 (file)
index 0000000..9a29855
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var toString = Object.prototype.toString
+
+  , id = toString.call((function () { return arguments; }()));
+
+module.exports = function (x) { return (toString.call(x) === id); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/is-function.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/is-function.js
new file mode 100644 (file)
index 0000000..ab4399c
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var toString = Object.prototype.toString
+
+  , id = toString.call(require('./noop'));
+
+module.exports = function (f) {
+       return (typeof f === "function") && (toString.call(f) === id);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/noop.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/noop.js
new file mode 100644 (file)
index 0000000..aa43bae
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function () {};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/pluck.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/pluck.js
new file mode 100644 (file)
index 0000000..7f70a30
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var value   = require('../object/valid-value');
+
+module.exports = function (name) {
+       return function (o) { return value(o)[name]; };
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/valid-function.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/valid-function.js
new file mode 100644 (file)
index 0000000..05fdee2
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var isFunction = require('./is-function');
+
+module.exports = function (x) {
+       if (!isFunction(x)) throw new TypeError(x + " is not a function");
+       return x;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/global.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/global.js
new file mode 100644 (file)
index 0000000..872a40e
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = new Function("return this")();
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/index.js
new file mode 100644 (file)
index 0000000..db9a760
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+module.exports = {
+       global:   require('./global'),
+
+       array:    require('./array'),
+       boolean:  require('./boolean'),
+       date:     require('./date'),
+       error:    require('./error'),
+       function: require('./function'),
+       iterable: require('./iterable'),
+       math:     require('./math'),
+       number:   require('./number'),
+       object:   require('./object'),
+       regExp:   require('./reg-exp'),
+       string:   require('./string')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/for-each.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/for-each.js
new file mode 100644 (file)
index 0000000..f1e2042
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+var forOf      = require('es6-iterator/for-of')
+  , isIterable = require('es6-iterator/is-iterable')
+  , iterable   = require('./validate')
+
+  , forEach = Array.prototype.forEach;
+
+module.exports = function (target, cb/*, thisArg*/) {
+       if (isIterable(iterable(target))) forOf(target, cb, arguments[2]);
+       else forEach.call(target, cb, arguments[2]);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/index.js
new file mode 100644 (file)
index 0000000..a3e16a5
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = {
+       forEach:        require('./for-each'),
+       is:             require('./is'),
+       validate:       require('./validate'),
+       validateObject: require('./validate-object')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/is.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/is.js
new file mode 100644 (file)
index 0000000..bb8bf28
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+var iteratorSymbol = require('es6-symbol').iterator
+  , isArrayLike    = require('../object/is-array-like');
+
+module.exports = function (x) {
+       if (x == null) return false;
+       if (typeof x[iteratorSymbol] === 'function') return true;
+       return isArrayLike(x);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/validate-object.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/validate-object.js
new file mode 100644 (file)
index 0000000..988a6ad
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var isObject = require('../object/is-object')
+  , is       = require('./is');
+
+module.exports = function (x) {
+       if (is(x) && isObject(x)) return x;
+       throw new TypeError(x + " is not an iterable or array-like object");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/validate.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/validate.js
new file mode 100644 (file)
index 0000000..1be6d7f
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var is = require('./is');
+
+module.exports = function (x) {
+       if (is(x)) return x;
+       throw new TypeError(x + " is not an iterable or array-like");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/_pack-ieee754.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/_pack-ieee754.js
new file mode 100644 (file)
index 0000000..eecda56
--- /dev/null
@@ -0,0 +1,82 @@
+// Credit: https://github.com/paulmillr/es6-shim/
+
+'use strict';
+
+var abs = Math.abs, floor = Math.floor, log = Math.log, min = Math.min
+  , pow = Math.pow, LN2 = Math.LN2
+  , roundToEven;
+
+roundToEven = function (n) {
+       var w = floor(n), f = n - w;
+       if (f < 0.5) return w;
+       if (f > 0.5) return w + 1;
+       return w % 2 ? w + 1 : w;
+};
+
+module.exports = function (v, ebits, fbits) {
+       var bias = (1 << (ebits - 1)) - 1, s, e, f, i, bits, str, bytes;
+
+       // Compute sign, exponent, fraction
+       if (isNaN(v)) {
+               // NaN
+               // http://dev.w3.org/2006/webapi/WebIDL/#es-type-mapping
+               e = (1 << ebits) - 1;
+               f = pow(2, fbits - 1);
+               s = 0;
+       } else if (v === Infinity || v === -Infinity) {
+               e = (1 << ebits) - 1;
+               f = 0;
+               s = (v < 0) ? 1 : 0;
+       } else if (v === 0) {
+               e = 0;
+               f = 0;
+               s = (1 / v === -Infinity) ? 1 : 0;
+       } else {
+               s = v < 0;
+               v = abs(v);
+
+               if (v >= pow(2, 1 - bias)) {
+                       e = min(floor(log(v) / LN2), 1023);
+                       f = roundToEven(v / pow(2, e) * pow(2, fbits));
+                       if (f / pow(2, fbits) >= 2) {
+                               e = e + 1;
+                               f = 1;
+                       }
+                       if (e > bias) {
+                               // Overflow
+                               e = (1 << ebits) - 1;
+                               f = 0;
+                       } else {
+                               // Normal
+                               e = e + bias;
+                               f = f - pow(2, fbits);
+                       }
+               } else {
+                       // Subnormal
+                       e = 0;
+                       f = roundToEven(v / pow(2, 1 - bias - fbits));
+               }
+       }
+
+       // Pack sign, exponent, fraction
+       bits = [];
+       for (i = fbits; i; i -= 1) {
+               bits.push(f % 2 ? 1 : 0);
+               f = floor(f / 2);
+       }
+       for (i = ebits; i; i -= 1) {
+               bits.push(e % 2 ? 1 : 0);
+               e = floor(e / 2);
+       }
+       bits.push(s ? 1 : 0);
+       bits.reverse();
+       str = bits.join('');
+
+       // Bits to bytes
+       bytes = [];
+       while (str.length) {
+               bytes.push(parseInt(str.substring(0, 8), 2));
+               str = str.substring(8);
+       }
+       return bytes;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/_unpack-ieee754.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/_unpack-ieee754.js
new file mode 100644 (file)
index 0000000..c9f26f2
--- /dev/null
@@ -0,0 +1,33 @@
+// Credit: https://github.com/paulmillr/es6-shim/
+
+'use strict';
+
+var pow = Math.pow;
+
+module.exports = function (bytes, ebits, fbits) {
+       // Bytes to bits
+       var bits = [], i, j, b, str,
+       bias, s, e, f;
+
+       for (i = bytes.length; i; i -= 1) {
+               b = bytes[i - 1];
+               for (j = 8; j; j -= 1) {
+                       bits.push(b % 2 ? 1 : 0);
+                       b = b >> 1;
+               }
+       }
+       bits.reverse();
+       str = bits.join('');
+
+       // Unpack sign, exponent, fraction
+       bias = (1 << (ebits - 1)) - 1;
+       s = parseInt(str.substring(0, 1), 2) ? -1 : 1;
+       e = parseInt(str.substring(1, 1 + ebits), 2);
+       f = parseInt(str.substring(1 + ebits), 2);
+
+       // Produce number
+       if (e === (1 << ebits) - 1) return f !== 0 ? NaN : s * Infinity;
+       if (e > 0) return s * pow(2, e - bias) * (1 + f / pow(2, fbits));
+       if (f !== 0) return s * pow(2, -(bias - 1)) * (f / pow(2, fbits));
+       return s < 0 ? -0 : 0;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/implement.js
new file mode 100644 (file)
index 0000000..f48ad11
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'acosh', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/index.js
new file mode 100644 (file)
index 0000000..00ddea6
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.acosh
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/is-implemented.js
new file mode 100644 (file)
index 0000000..363f0d8
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var acosh = Math.acosh;
+       if (typeof acosh !== 'function') return false;
+       return acosh(2) === 1.3169578969248166;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/shim.js
new file mode 100644 (file)
index 0000000..89a24b5
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+var log = Math.log, sqrt = Math.sqrt;
+
+module.exports = function (x) {
+       if (isNaN(x)) return NaN;
+       x = Number(x);
+       if (x < 1) return NaN;
+       if (x === 1) return 0;
+       if (x === Infinity) return x;
+       return log(x + sqrt(x * x - 1));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/implement.js
new file mode 100644 (file)
index 0000000..21f64d5
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'asinh', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/index.js
new file mode 100644 (file)
index 0000000..d415144
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.asinh
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/is-implemented.js
new file mode 100644 (file)
index 0000000..6c205f4
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var asinh = Math.asinh;
+       if (typeof asinh !== 'function') return false;
+       return asinh(2) === 1.4436354751788103;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/shim.js
new file mode 100644 (file)
index 0000000..42fbf14
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+var log = Math.log, sqrt = Math.sqrt;
+
+module.exports = function (x) {
+       if (isNaN(x)) return NaN;
+       x = Number(x);
+       if (x === 0) return x;
+       if (!isFinite(x)) return x;
+       if (x < 0) {
+               x = -x;
+               return -log(x + sqrt(x * x + 1));
+       }
+       return log(x + sqrt(x * x + 1));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/implement.js
new file mode 100644 (file)
index 0000000..1a48513
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'atanh', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/index.js
new file mode 100644 (file)
index 0000000..785b3de
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.atanh
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/is-implemented.js
new file mode 100644 (file)
index 0000000..dbaf18e
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var atanh = Math.atanh;
+       if (typeof atanh !== 'function') return false;
+       return atanh(0.5) === 0.5493061443340549;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/shim.js
new file mode 100644 (file)
index 0000000..531e289
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+var log = Math.log;
+
+module.exports = function (x) {
+       if (isNaN(x)) return NaN;
+       x = Number(x);
+       if (x < -1) return NaN;
+       if (x > 1) return NaN;
+       if (x === -1) return -Infinity;
+       if (x === 1) return Infinity;
+       if (x === 0) return x;
+       return 0.5 * log((1 + x) / (1 - x));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/implement.js
new file mode 100644 (file)
index 0000000..3a12dde
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'cbrt', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/index.js
new file mode 100644 (file)
index 0000000..89f966d
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.cbrt
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/is-implemented.js
new file mode 100644 (file)
index 0000000..69809f3
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var cbrt = Math.cbrt;
+       if (typeof cbrt !== 'function') return false;
+       return cbrt(2) === 1.2599210498948732;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/shim.js
new file mode 100644 (file)
index 0000000..bca1960
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+var pow = Math.pow;
+
+module.exports = function (x) {
+       if (isNaN(x)) return NaN;
+       x = Number(x);
+       if (x === 0) return x;
+       if (!isFinite(x)) return x;
+       if (x < 0) return -pow(-x, 1 / 3);
+       return pow(x, 1 / 3);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/implement.js
new file mode 100644 (file)
index 0000000..339df33
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'clz32', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/index.js
new file mode 100644 (file)
index 0000000..1687b33
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.clz32
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/is-implemented.js
new file mode 100644 (file)
index 0000000..ccc8f71
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var clz32 = Math.clz32;
+       if (typeof clz32 !== 'function') return false;
+       return clz32(1000) === 22;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/shim.js
new file mode 100644 (file)
index 0000000..2a582da
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (value) {
+       value = value >>> 0;
+       return value ? 32 - value.toString(2).length : 32;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/implement.js
new file mode 100644 (file)
index 0000000..f90d830
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'cosh', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/index.js
new file mode 100644 (file)
index 0000000..000636a
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.cosh
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/is-implemented.js
new file mode 100644 (file)
index 0000000..c796bcb
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var cosh = Math.cosh;
+       if (typeof cosh !== 'function') return false;
+       return cosh(1) === 1.5430806348152437;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/shim.js
new file mode 100644 (file)
index 0000000..f9062bd
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+var exp = Math.exp;
+
+module.exports = function (x) {
+       if (isNaN(x)) return NaN;
+       x = Number(x);
+       if (x === 0) return 1;
+       if (!isFinite(x)) return Infinity;
+       return (exp(x) + exp(-x)) / 2;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/implement.js
new file mode 100644 (file)
index 0000000..fc20c8c
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'expm1', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/index.js
new file mode 100644 (file)
index 0000000..4c1bc77
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.expm1
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/is-implemented.js
new file mode 100644 (file)
index 0000000..3b106d5
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var expm1 = Math.expm1;
+       if (typeof expm1 !== 'function') return false;
+       return expm1(1).toFixed(15) === '1.718281828459045';
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/shim.js
new file mode 100644 (file)
index 0000000..9c8c236
--- /dev/null
@@ -0,0 +1,16 @@
+// Thanks: https://github.com/monolithed/ECMAScript-6
+
+'use strict';
+
+var exp = Math.exp;
+
+module.exports = function (x) {
+       if (isNaN(x)) return NaN;
+       x = Number(x);
+       if (x === 0) return x;
+       if (x === Infinity) return Infinity;
+       if (x === -Infinity) return -1;
+
+       if ((x > -1.0e-6) && (x < 1.0e-6)) return x + x * x / 2;
+       return exp(x) - 1;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/implement.js
new file mode 100644 (file)
index 0000000..c55b26c
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'fround', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/index.js
new file mode 100644 (file)
index 0000000..a077ed0
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.fround
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/is-implemented.js
new file mode 100644 (file)
index 0000000..ffbf094
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var fround = Math.fround;
+       if (typeof fround !== 'function') return false;
+       return fround(1.337) === 1.3370000123977661;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/shim.js
new file mode 100644 (file)
index 0000000..f2c86e4
--- /dev/null
@@ -0,0 +1,33 @@
+// Credit: https://github.com/paulmillr/es6-shim/blob/master/es6-shim.js
+
+'use strict';
+
+var toFloat32;
+
+if (typeof Float32Array !== 'undefined') {
+       toFloat32 = (function () {
+               var float32Array = new Float32Array(1);
+               return function (x) {
+                       float32Array[0] = x;
+                       return float32Array[0];
+               };
+       }());
+} else {
+       toFloat32 = (function () {
+               var pack   = require('../_pack-ieee754')
+                 , unpack = require('../_unpack-ieee754');
+
+               return function (x) {
+                       return unpack(pack(x, 8, 23), 8, 23);
+               };
+       }());
+}
+
+module.exports = function (x) {
+       if (isNaN(x)) return NaN;
+       x = Number(x);
+       if (x === 0) return x;
+       if (!isFinite(x)) return x;
+
+       return toFloat32(x);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/implement.js
new file mode 100644 (file)
index 0000000..b27fda7
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'hypot', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/index.js
new file mode 100644 (file)
index 0000000..334bc58
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.hypot
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/is-implemented.js
new file mode 100644 (file)
index 0000000..e75c5d3
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var hypot = Math.hypot;
+       if (typeof hypot !== 'function') return false;
+       return hypot(3, 4) === 5;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/shim.js
new file mode 100644 (file)
index 0000000..3d0988b
--- /dev/null
@@ -0,0 +1,34 @@
+// Thanks for hints: https://github.com/paulmillr/es6-shim
+
+'use strict';
+
+var some = Array.prototype.some, abs = Math.abs, sqrt = Math.sqrt
+
+  , compare = function (a, b) { return b - a; }
+  , divide = function (x) { return x / this; }
+  , add = function (sum, number) { return sum + number * number; };
+
+module.exports = function (val1, val2/*, …valn*/) {
+       var result, numbers;
+       if (!arguments.length) return 0;
+       some.call(arguments, function (val) {
+               if (isNaN(val)) {
+                       result = NaN;
+                       return;
+               }
+               if (!isFinite(val)) {
+                       result = Infinity;
+                       return true;
+               }
+               if (result !== undefined) return;
+               val = Number(val);
+               if (val === 0) return;
+               if (!numbers) numbers = [abs(val)];
+               else numbers.push(abs(val));
+       });
+       if (result !== undefined) return result;
+       if (!numbers) return 0;
+
+       numbers.sort(compare);
+       return numbers[0] * sqrt(numbers.map(divide, numbers[0]).reduce(add, 0));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/implement.js
new file mode 100644 (file)
index 0000000..ed207bd
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'imul', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/index.js
new file mode 100644 (file)
index 0000000..41e5d5f
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.imul
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/is-implemented.js
new file mode 100644 (file)
index 0000000..d8495de
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var imul = Math.imul;
+       if (typeof imul !== 'function') return false;
+       return imul(-1, 8) === -8;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/shim.js
new file mode 100644 (file)
index 0000000..8fd8a8d
--- /dev/null
@@ -0,0 +1,13 @@
+// Thanks: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference
+//         /Global_Objects/Math/imul
+
+'use strict';
+
+module.exports = function (x, y) {
+       var xh  = (x >>> 16) & 0xffff, xl = x & 0xffff
+         , yh  = (y >>> 16) & 0xffff, yl = y & 0xffff;
+
+       // the shift by 0 fixes the sign on the high part
+       // the final |0 converts the unsigned value into a signed value
+       return ((xl * yl) + (((xh * yl + xl * yh) << 16) >>> 0) | 0);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/index.js
new file mode 100644 (file)
index 0000000..d112d0b
--- /dev/null
@@ -0,0 +1,21 @@
+'use strict';
+
+module.exports = {
+       acosh:  require('./acosh'),
+       asinh:  require('./asinh'),
+       atanh:  require('./atanh'),
+       cbrt:   require('./cbrt'),
+       clz32:  require('./clz32'),
+       cosh:   require('./cosh'),
+       expm1:  require('./expm1'),
+       fround: require('./fround'),
+       hypot:  require('./hypot'),
+       imul:   require('./imul'),
+       log10:  require('./log10'),
+       log2:   require('./log2'),
+       log1p:  require('./log1p'),
+       sign:   require('./sign'),
+       sinh:   require('./sinh'),
+       tanh:   require('./tanh'),
+       trunc:  require('./trunc')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/implement.js
new file mode 100644 (file)
index 0000000..dd96edd
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'log10', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/index.js
new file mode 100644 (file)
index 0000000..a9eee51
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.log10
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/is-implemented.js
new file mode 100644 (file)
index 0000000..c7f40ee
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var log10 = Math.log10;
+       if (typeof log10 !== 'function') return false;
+       return log10(2) === 0.3010299956639812;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/shim.js
new file mode 100644 (file)
index 0000000..fc77287
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+var log = Math.log, LOG10E = Math.LOG10E;
+
+module.exports = function (x) {
+       if (isNaN(x)) return NaN;
+       x = Number(x);
+       if (x < 0) return NaN;
+       if (x === 0) return -Infinity;
+       if (x === 1) return 0;
+       if (x === Infinity) return Infinity;
+
+       return log(x) * LOG10E;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/implement.js
new file mode 100644 (file)
index 0000000..f62f91f
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'log1p', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/index.js
new file mode 100644 (file)
index 0000000..107b114
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.log1p
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/is-implemented.js
new file mode 100644 (file)
index 0000000..61e9097
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var log1p = Math.log1p;
+       if (typeof log1p !== 'function') return false;
+       return log1p(1) === 0.6931471805599453;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/shim.js
new file mode 100644 (file)
index 0000000..10acebc
--- /dev/null
@@ -0,0 +1,17 @@
+// Thanks: https://github.com/monolithed/ECMAScript-6/blob/master/ES6.js
+
+'use strict';
+
+var log = Math.log;
+
+module.exports = function (x) {
+       if (isNaN(x)) return NaN;
+       x = Number(x);
+       if (x < -1) return NaN;
+       if (x === -1) return -Infinity;
+       if (x === 0) return x;
+       if (x === Infinity) return Infinity;
+
+       if (x > -1.0e-8 && x < 1.0e-8) return (x - x * x / 2);
+       return log(1 + x);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/implement.js
new file mode 100644 (file)
index 0000000..8483f09
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'log2', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/index.js
new file mode 100644 (file)
index 0000000..87e9050
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.log2
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/is-implemented.js
new file mode 100644 (file)
index 0000000..802322f
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var log2 = Math.log2;
+       if (typeof log2 !== 'function') return false;
+       return log2(3).toFixed(15) === '1.584962500721156';
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/shim.js
new file mode 100644 (file)
index 0000000..cd80994
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+var log = Math.log, LOG2E = Math.LOG2E;
+
+module.exports = function (x) {
+       if (isNaN(x)) return NaN;
+       x = Number(x);
+       if (x < 0) return NaN;
+       if (x === 0) return -Infinity;
+       if (x === 1) return 0;
+       if (x === Infinity) return Infinity;
+
+       return log(x) * LOG2E;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/implement.js
new file mode 100644 (file)
index 0000000..b0db2f4
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'sign', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/index.js
new file mode 100644 (file)
index 0000000..b232633
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.sign
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/is-implemented.js
new file mode 100644 (file)
index 0000000..6d0de47
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var sign = Math.sign;
+       if (typeof sign !== 'function') return false;
+       return ((sign(10) === 1) && (sign(-20) === -1));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/shim.js
new file mode 100644 (file)
index 0000000..4df9c95
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function (value) {
+       value = Number(value);
+       if (isNaN(value) || (value === 0)) return value;
+       return (value > 0) ? 1 : -1;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/implement.js
new file mode 100644 (file)
index 0000000..f259a63
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'sinh', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/index.js
new file mode 100644 (file)
index 0000000..e5bea57
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.sinh
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/is-implemented.js
new file mode 100644 (file)
index 0000000..888ec67
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var sinh = Math.sinh;
+       if (typeof sinh !== 'function') return false;
+       return ((sinh(1) === 1.1752011936438014) && (sinh(Number.MIN_VALUE) === 5e-324));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/shim.js
new file mode 100644 (file)
index 0000000..5b725be
--- /dev/null
@@ -0,0 +1,17 @@
+// Parts of implementation taken from es6-shim project
+// See: https://github.com/paulmillr/es6-shim/blob/master/es6-shim.js
+
+'use strict';
+
+var expm1 = require('../expm1')
+
+  , abs = Math.abs, exp = Math.exp, e = Math.E;
+
+module.exports = function (x) {
+       if (isNaN(x)) return NaN;
+       x = Number(x);
+       if (x === 0) return x;
+       if (!isFinite(x)) return x;
+       if (abs(x) < 1) return (expm1(x) - expm1(-x)) / 2;
+       return (exp(x - 1) - exp(-x - 1)) * e / 2;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/implement.js
new file mode 100644 (file)
index 0000000..5199a02
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'tanh', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/index.js
new file mode 100644 (file)
index 0000000..6099c40
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.tanh
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/is-implemented.js
new file mode 100644 (file)
index 0000000..a7d2223
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var tanh = Math.tanh;
+       if (typeof tanh !== 'function') return false;
+       return ((tanh(1) === 0.7615941559557649) && (tanh(Number.MAX_VALUE) === 1));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/shim.js
new file mode 100644 (file)
index 0000000..f6e948f
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+var exp = Math.exp;
+
+module.exports = function (x) {
+       var a, b;
+       if (isNaN(x)) return NaN;
+       x = Number(x);
+       if (x === 0) return x;
+       if (x === Infinity) return 1;
+       if (x === -Infinity) return -1;
+       a = exp(x);
+       if (a === Infinity) return 1;
+       b = exp(-x);
+       if (b === Infinity) return -1;
+       return (a - b) / (a + b);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/implement.js
new file mode 100644 (file)
index 0000000..3ee80ab
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Math, 'trunc', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/index.js
new file mode 100644 (file)
index 0000000..0b0f9b2
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Math.trunc
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/is-implemented.js
new file mode 100644 (file)
index 0000000..3e8cde1
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var trunc = Math.trunc;
+       if (typeof trunc !== 'function') return false;
+       return (trunc(13.67) === 13) && (trunc(-13.67) === -13);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/shim.js
new file mode 100644 (file)
index 0000000..02e2c2a
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+var floor = Math.floor;
+
+module.exports = function (x) {
+       if (isNaN(x)) return NaN;
+       x = Number(x);
+       if (x === 0) return x;
+       if (x === Infinity) return Infinity;
+       if (x === -Infinity) return -Infinity;
+       if (x > 0) return floor(x);
+       return -floor(-x);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/#/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/#/index.js
new file mode 100644 (file)
index 0000000..3248117
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = {
+       pad: require('./pad')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/#/pad.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/#/pad.js
new file mode 100644 (file)
index 0000000..4478f6a
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+var pad      = require('../../string/#/pad')
+  , toPosInt = require('../to-pos-integer')
+
+  , toFixed = Number.prototype.toFixed;
+
+module.exports = function (length/*, precision*/) {
+       var precision;
+       length = toPosInt(length);
+       precision = toPosInt(arguments[1]);
+
+       return pad.call(precision ? toFixed.call(this, precision) : this,
+               '0', length + (precision ? (1 + precision) : 0));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/epsilon/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/epsilon/implement.js
new file mode 100644 (file)
index 0000000..f0a670a
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Number, 'EPSILON', { value: require('./'),
+               configurable: false, enumerable: false, writable: false });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/epsilon/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/epsilon/index.js
new file mode 100644 (file)
index 0000000..4e4b621
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = 2.220446049250313e-16;
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/epsilon/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/epsilon/is-implemented.js
new file mode 100644 (file)
index 0000000..141f5d2
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function () {
+       return (typeof Number.EPSILON === 'number');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/index.js
new file mode 100644 (file)
index 0000000..35daf78
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+module.exports = {
+       '#':              require('./#'),
+       EPSILON:          require('./epsilon'),
+       isFinite:         require('./is-finite'),
+       isInteger:        require('./is-integer'),
+       isNaN:            require('./is-nan'),
+       isNumber:         require('./is-number'),
+       isSafeInteger:    require('./is-safe-integer'),
+       MAX_SAFE_INTEGER: require('./max-safe-integer'),
+       MIN_SAFE_INTEGER: require('./min-safe-integer'),
+       toInteger:        require('./to-integer'),
+       toPosInteger:     require('./to-pos-integer'),
+       toUint32:         require('./to-uint32')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/implement.js
new file mode 100644 (file)
index 0000000..51d7cac
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Number, 'isFinite', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/index.js
new file mode 100644 (file)
index 0000000..15d5f40
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Number.isFinite
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/is-implemented.js
new file mode 100644 (file)
index 0000000..556e396
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var isFinite = Number.isFinite;
+       if (typeof isFinite !== 'function') return false;
+       return !isFinite('23') && isFinite(34) && !isFinite(Infinity);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/shim.js
new file mode 100644 (file)
index 0000000..e3aee55
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (value) {
+       return (typeof value === 'number') && isFinite(value);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/implement.js
new file mode 100644 (file)
index 0000000..fe53f28
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Number, 'isInteger', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/index.js
new file mode 100644 (file)
index 0000000..55e039a
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Number.isInteger
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/is-implemented.js
new file mode 100644 (file)
index 0000000..a0e573b
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var isInteger = Number.isInteger;
+       if (typeof isInteger !== 'function') return false;
+       return !isInteger('23') && isInteger(34) && !isInteger(32.34);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/shim.js
new file mode 100644 (file)
index 0000000..5402939
--- /dev/null
@@ -0,0 +1,8 @@
+// Credit: http://www.2ality.com/2014/05/is-integer.html
+
+'use strict';
+
+module.exports = function (value) {
+       if (typeof value !== 'number') return false;
+       return (value % 1 === 0);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/implement.js
new file mode 100644 (file)
index 0000000..e1c5dee
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Number, 'isNaN', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/index.js
new file mode 100644 (file)
index 0000000..3b2c4ca
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Number.isNaN
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/is-implemented.js
new file mode 100644 (file)
index 0000000..4cf2766
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var isNaN = Number.isNaN;
+       if (typeof isNaN !== 'function') return false;
+       return !isNaN({}) && isNaN(NaN) && !isNaN(34);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/shim.js
new file mode 100644 (file)
index 0000000..070d96c
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (value) { return (value !== value); } //jslint: ignore
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-number.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-number.js
new file mode 100644 (file)
index 0000000..19a99e4
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+var toString = Object.prototype.toString
+
+  , id = toString.call(1);
+
+module.exports = function (x) {
+       return ((typeof x === 'number') ||
+               ((x instanceof Number) ||
+                       ((typeof x === 'object') && (toString.call(x) === id))));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/implement.js
new file mode 100644 (file)
index 0000000..51cef96
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Number, 'isSafeInteger', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/index.js
new file mode 100644 (file)
index 0000000..49adeaa
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Number.isSafeInteger
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/is-implemented.js
new file mode 100644 (file)
index 0000000..510b60e
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = function () {
+       var isSafeInteger = Number.isSafeInteger;
+       if (typeof isSafeInteger !== 'function') return false;
+       return !isSafeInteger('23') && isSafeInteger(34232322323) &&
+                       !isSafeInteger(9007199254740992);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/shim.js
new file mode 100644 (file)
index 0000000..692acdd
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+var isInteger = require('../is-integer/shim')
+  , maxValue  = require('../max-safe-integer')
+
+  , abs = Math.abs;
+
+module.exports = function (value) {
+       if (!isInteger(value)) return false;
+       return abs(value) <= maxValue;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/max-safe-integer/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/max-safe-integer/implement.js
new file mode 100644 (file)
index 0000000..4e0bb57
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Number, 'MAX_SAFE_INTEGER', { value: require('./'),
+               configurable: false, enumerable: false, writable: false });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/max-safe-integer/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/max-safe-integer/index.js
new file mode 100644 (file)
index 0000000..ed5d6a5
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = Math.pow(2, 53) - 1;
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/max-safe-integer/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/max-safe-integer/is-implemented.js
new file mode 100644 (file)
index 0000000..7bd08a9
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function () {
+       return (typeof Number.MAX_SAFE_INTEGER === 'number');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/min-safe-integer/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/min-safe-integer/implement.js
new file mode 100644 (file)
index 0000000..e3f110e
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Number, 'MIN_SAFE_INTEGER', { value: require('./'),
+               configurable: false, enumerable: false, writable: false });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/min-safe-integer/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/min-safe-integer/index.js
new file mode 100644 (file)
index 0000000..1c6cc27
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = -(Math.pow(2, 53) - 1);
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/min-safe-integer/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/min-safe-integer/is-implemented.js
new file mode 100644 (file)
index 0000000..efc9875
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function () {
+       return (typeof Number.MIN_SAFE_INTEGER === 'number');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/to-integer.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/to-integer.js
new file mode 100644 (file)
index 0000000..60e798c
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+var sign = require('../math/sign')
+
+  , abs = Math.abs, floor = Math.floor;
+
+module.exports = function (value) {
+       if (isNaN(value)) return 0;
+       value = Number(value);
+       if ((value === 0) || !isFinite(value)) return value;
+       return sign(value) * floor(abs(value));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/to-pos-integer.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/to-pos-integer.js
new file mode 100644 (file)
index 0000000..605a302
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var toInteger = require('./to-integer')
+
+  , max = Math.max;
+
+module.exports = function (value) { return max(0, toInteger(value)); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/to-uint32.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/to-uint32.js
new file mode 100644 (file)
index 0000000..6263e85
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (value) { return value >>> 0; };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/_iterate.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/_iterate.js
new file mode 100644 (file)
index 0000000..bf2c55d
--- /dev/null
@@ -0,0 +1,29 @@
+// Internal method, used by iteration functions.
+// Calls a function for each key-value pair found in object
+// Optionally takes compareFn to iterate object in specific order
+
+'use strict';
+
+var isCallable = require('./is-callable')
+  , callable   = require('./valid-callable')
+  , value      = require('./valid-value')
+
+  , call = Function.prototype.call, keys = Object.keys
+  , propertyIsEnumerable = Object.prototype.propertyIsEnumerable;
+
+module.exports = function (method, defVal) {
+       return function (obj, cb/*, thisArg, compareFn*/) {
+               var list, thisArg = arguments[2], compareFn = arguments[3];
+               obj = Object(value(obj));
+               callable(cb);
+
+               list = keys(obj);
+               if (compareFn) {
+                       list.sort(isCallable(compareFn) ? compareFn.bind(obj) : undefined);
+               }
+               return list[method](function (key, index) {
+                       if (!propertyIsEnumerable.call(obj, key)) return defVal;
+                       return call.call(cb, thisArg, obj[key], key, obj, index);
+               });
+       };
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/implement.js
new file mode 100644 (file)
index 0000000..3bcc68e
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Object, 'assign', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/index.js
new file mode 100644 (file)
index 0000000..ab0f9f2
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Object.assign
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/is-implemented.js
new file mode 100644 (file)
index 0000000..579ad2d
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function () {
+       var assign = Object.assign, obj;
+       if (typeof assign !== 'function') return false;
+       obj = { foo: 'raz' };
+       assign(obj, { bar: 'dwa' }, { trzy: 'trzy' });
+       return (obj.foo + obj.bar + obj.trzy) === 'razdwatrzy';
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/shim.js
new file mode 100644 (file)
index 0000000..74da11a
--- /dev/null
@@ -0,0 +1,22 @@
+'use strict';
+
+var keys  = require('../keys')
+  , value = require('../valid-value')
+
+  , max = Math.max;
+
+module.exports = function (dest, src/*, …srcn*/) {
+       var error, i, l = max(arguments.length, 2), assign;
+       dest = Object(value(dest));
+       assign = function (key) {
+               try { dest[key] = src[key]; } catch (e) {
+                       if (!error) error = e;
+               }
+       };
+       for (i = 1; i < l; ++i) {
+               src = arguments[i];
+               keys(src).forEach(assign);
+       }
+       if (error !== undefined) throw error;
+       return dest;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/clear.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/clear.js
new file mode 100644 (file)
index 0000000..85e4637
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var keys = require('./keys');
+
+module.exports = function (obj) {
+       var error;
+       keys(obj).forEach(function (key) {
+               try {
+                       delete this[key];
+               } catch (e) {
+                       if (!error) error = e;
+               }
+       }, obj);
+       if (error !== undefined) throw error;
+       return obj;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/compact.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/compact.js
new file mode 100644 (file)
index 0000000..d021da4
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var filter = require('./filter');
+
+module.exports = function (obj) {
+       return filter(obj, function (val) { return val != null; });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/compare.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/compare.js
new file mode 100644 (file)
index 0000000..2ab11f1
--- /dev/null
@@ -0,0 +1,42 @@
+'use strict';
+
+var strCompare = require('../string/#/case-insensitive-compare')
+  , isObject   = require('./is-object')
+
+  , resolve, typeMap;
+
+typeMap = {
+       undefined: 0,
+       object: 1,
+       boolean: 2,
+       string: 3,
+       number: 4
+};
+
+resolve = function (a) {
+       if (isObject(a)) {
+               if (typeof a.valueOf !== 'function') return NaN;
+               a = a.valueOf();
+               if (isObject(a)) {
+                       if (typeof a.toString !== 'function') return NaN;
+                       a = a.toString();
+                       if (typeof a !== 'string') return NaN;
+               }
+       }
+       return a;
+};
+
+module.exports = function (a, b) {
+       if (a === b) return 0; // Same
+
+       a = resolve(a);
+       b = resolve(b);
+       if (a == b) return typeMap[typeof a] - typeMap[typeof b]; //jslint: ignore
+       if (a == null) return -1;
+       if (b == null) return 1;
+       if ((typeof a === 'string') || (typeof b === 'string')) {
+               return strCompare.call(a, b);
+       }
+       if ((a !== a) && (b !== b)) return 0; //jslint: ignore
+       return Number(a) - Number(b);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/copy-deep.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/copy-deep.js
new file mode 100644 (file)
index 0000000..548e3ee
--- /dev/null
@@ -0,0 +1,30 @@
+'use strict';
+
+var isPlainObject = require('./is-plain-object')
+  , value         = require('./valid-value')
+
+  , keys = Object.keys
+  , copy;
+
+copy = function (source) {
+       var target = {};
+       this[0].push(source);
+       this[1].push(target);
+       keys(source).forEach(function (key) {
+               var index;
+               if (!isPlainObject(source[key])) {
+                       target[key] = source[key];
+                       return;
+               }
+               index = this[0].indexOf(source[key]);
+               if (index === -1) target[key] = copy.call(this, source[key]);
+               else target[key] = this[1][index];
+       }, this);
+       return target;
+};
+
+module.exports = function (source) {
+       var obj = Object(value(source));
+       if (obj !== source) return obj;
+       return copy.call([[], []], obj);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/copy.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/copy.js
new file mode 100644 (file)
index 0000000..4d71772
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+var assign = require('./assign')
+  , value  = require('./valid-value');
+
+module.exports = function (obj) {
+       var copy = Object(value(obj));
+       if (copy !== obj) return copy;
+       return assign({}, obj);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/count.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/count.js
new file mode 100644 (file)
index 0000000..29cfbb5
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var keys  = require('./keys');
+
+module.exports = function (obj) { return keys(obj).length; };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/create.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/create.js
new file mode 100644 (file)
index 0000000..f813b46
--- /dev/null
@@ -0,0 +1,36 @@
+// Workaround for http://code.google.com/p/v8/issues/detail?id=2804
+
+'use strict';
+
+var create = Object.create, shim;
+
+if (!require('./set-prototype-of/is-implemented')()) {
+       shim = require('./set-prototype-of/shim');
+}
+
+module.exports = (function () {
+       var nullObject, props, desc;
+       if (!shim) return create;
+       if (shim.level !== 1) return create;
+
+       nullObject = {};
+       props = {};
+       desc = { configurable: false, enumerable: false, writable: true,
+               value: undefined };
+       Object.getOwnPropertyNames(Object.prototype).forEach(function (name) {
+               if (name === '__proto__') {
+                       props[name] = { configurable: true, enumerable: false, writable: true,
+                               value: undefined };
+                       return;
+               }
+               props[name] = desc;
+       });
+       Object.defineProperties(nullObject, props);
+
+       Object.defineProperty(shim, 'nullPolyfill', { configurable: false,
+               enumerable: false, writable: false, value: nullObject });
+
+       return function (prototype, props) {
+               return create((prototype === null) ? nullObject : prototype, props);
+       };
+}());
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/eq.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/eq.js
new file mode 100644 (file)
index 0000000..037937e
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (x, y) {
+       return ((x === y) || ((x !== x) && (y !== y))); //jslint: ignore
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/every.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/every.js
new file mode 100644 (file)
index 0000000..1303db2
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./_iterate')('every', true);
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/filter.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/filter.js
new file mode 100644 (file)
index 0000000..e5edb49
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+var callable = require('./valid-callable')
+  , forEach  = require('./for-each')
+
+  , call = Function.prototype.call;
+
+module.exports = function (obj, cb/*, thisArg*/) {
+       var o = {}, thisArg = arguments[2];
+       callable(cb);
+       forEach(obj, function (value, key, obj, index) {
+               if (call.call(cb, thisArg, value, key, obj, index)) o[key] = obj[key];
+       });
+       return o;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/first-key.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/first-key.js
new file mode 100644 (file)
index 0000000..7df10b2
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+var value = require('./valid-value')
+
+  , propertyIsEnumerable = Object.prototype.propertyIsEnumerable;
+
+module.exports = function (obj) {
+       var i;
+       value(obj);
+       for (i in obj) {
+               if (propertyIsEnumerable.call(obj, i)) return i;
+       }
+       return null;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/flatten.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/flatten.js
new file mode 100644 (file)
index 0000000..e8b4044
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+var isPlainObject = require('./is-plain-object')
+  , forEach       = require('./for-each')
+
+  , process;
+
+process = function self(value, key) {
+       if (isPlainObject(value)) forEach(value, self, this);
+       else this[key] = value;
+};
+
+module.exports = function (obj) {
+       var flattened = {};
+       forEach(obj, process, flattened);
+       return flattened;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/for-each.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/for-each.js
new file mode 100644 (file)
index 0000000..6674f8a
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./_iterate')('forEach');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/get-property-names.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/get-property-names.js
new file mode 100644 (file)
index 0000000..54a01e5
--- /dev/null
@@ -0,0 +1,18 @@
+'use strict';
+
+var uniq  = require('../array/#/uniq')
+  , value = require('./valid-value')
+
+  , push = Array.prototype.push
+  , getOwnPropertyNames = Object.getOwnPropertyNames
+  , getPrototypeOf = Object.getPrototypeOf;
+
+module.exports = function (obj) {
+       var keys;
+       obj = Object(value(obj));
+       keys = getOwnPropertyNames(obj);
+       while ((obj = getPrototypeOf(obj))) {
+               push.apply(keys, getOwnPropertyNames(obj));
+       }
+       return uniq.call(keys);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/index.js
new file mode 100644 (file)
index 0000000..4bdf403
--- /dev/null
@@ -0,0 +1,48 @@
+'use strict';
+
+module.exports = {
+       assign:                     require('./assign'),
+       clear:                      require('./clear'),
+       compact:                    require('./compact'),
+       compare:                    require('./compare'),
+       copy:                       require('./copy'),
+       copyDeep:                   require('./copy-deep'),
+       count:                      require('./count'),
+       create:                     require('./create'),
+       eq:                         require('./eq'),
+       every:                      require('./every'),
+       filter:                     require('./filter'),
+       firstKey:                   require('./first-key'),
+       flatten:                    require('./flatten'),
+       forEach:                    require('./for-each'),
+       getPropertyNames:           require('./get-property-names'),
+       is:                         require('./is'),
+       isArrayLike:                require('./is-array-like'),
+       isCallable:                 require('./is-callable'),
+       isCopy:                     require('./is-copy'),
+       isCopyDeep:                 require('./is-copy-deep'),
+       isEmpty:                    require('./is-empty'),
+       isObject:                   require('./is-object'),
+       isPlainObject:              require('./is-plain-object'),
+       keyOf:                      require('./key-of'),
+       keys:                       require('./keys'),
+       map:                        require('./map'),
+       mapKeys:                    require('./map-keys'),
+       normalizeOptions:           require('./normalize-options'),
+       mixin:                      require('./mixin'),
+       mixinPrototypes:            require('./mixin-prototypes'),
+       primitiveSet:               require('./primitive-set'),
+       safeTraverse:               require('./safe-traverse'),
+       serialize:                  require('./serialize'),
+       setPrototypeOf:             require('./set-prototype-of'),
+       some:                       require('./some'),
+       toArray:                    require('./to-array'),
+       unserialize:                require('./unserialize'),
+       validateArrayLike:          require('./validate-array-like'),
+       validateArrayLikeObject:    require('./validate-array-like-object'),
+       validCallable:              require('./valid-callable'),
+       validObject:                require('./valid-object'),
+       validateStringifiable:      require('./validate-stringifiable'),
+       validateStringifiableValue: require('./validate-stringifiable-value'),
+       validValue:                 require('./valid-value')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-array-like.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-array-like.js
new file mode 100644 (file)
index 0000000..b8beed2
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+var isFunction = require('../function/is-function')
+  , isObject   = require('./is-object');
+
+module.exports = function (x) {
+       return ((x != null) && (typeof x.length === 'number') &&
+
+               // Just checking ((typeof x === 'object') && (typeof x !== 'function'))
+               // won't work right for some cases, e.g.:
+               // type of instance of NodeList in Safari is a 'function'
+
+               ((isObject(x) && !isFunction(x)) || (typeof x === "string"))) || false;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-callable.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-callable.js
new file mode 100644 (file)
index 0000000..5d5d4b3
--- /dev/null
@@ -0,0 +1,5 @@
+// Deprecated
+
+'use strict';
+
+module.exports = function (obj) { return typeof obj === 'function'; };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-copy-deep.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-copy-deep.js
new file mode 100644 (file)
index 0000000..c4b2b42
--- /dev/null
@@ -0,0 +1,58 @@
+'use strict';
+
+var eq            = require('./eq')
+  , isPlainObject = require('./is-plain-object')
+  , value         = require('./valid-value')
+
+  , isArray = Array.isArray, keys = Object.keys
+  , propertyIsEnumerable = Object.prototype.propertyIsEnumerable
+
+  , eqArr, eqVal, eqObj;
+
+eqArr = function (a, b, recMap) {
+       var i, l = a.length;
+       if (l !== b.length) return false;
+       for (i = 0; i < l; ++i) {
+               if (a.hasOwnProperty(i) !== b.hasOwnProperty(i)) return false;
+               if (!eqVal(a[i], b[i], recMap)) return false;
+       }
+       return true;
+};
+
+eqObj = function (a, b, recMap) {
+       var k1 = keys(a), k2 = keys(b);
+       if (k1.length !== k2.length) return false;
+       return k1.every(function (key) {
+               if (!propertyIsEnumerable.call(b, key)) return false;
+               return eqVal(a[key], b[key], recMap);
+       });
+};
+
+eqVal = function (a, b, recMap) {
+       var i, eqX, c1, c2;
+       if (eq(a, b)) return true;
+       if (isPlainObject(a)) {
+               if (!isPlainObject(b)) return false;
+               eqX = eqObj;
+       } else if (isArray(a) && isArray(b)) {
+               eqX = eqArr;
+       } else {
+               return false;
+       }
+       c1 = recMap[0];
+       c2 = recMap[1];
+       i = c1.indexOf(a);
+       if (i !== -1) {
+               if (c2[i].indexOf(b) !== -1) return true;
+       } else {
+               i = c1.push(a) - 1;
+               c2[i] = [];
+       }
+       c2[i].push(b);
+       return eqX(a, b, recMap);
+};
+
+module.exports = function (a, b) {
+       if (eq(value(a), value(b))) return true;
+       return eqVal(Object(a), Object(b), [[], []]);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-copy.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-copy.js
new file mode 100644 (file)
index 0000000..4fe639d
--- /dev/null
@@ -0,0 +1,24 @@
+'use strict';
+
+var eq     = require('./eq')
+  , value  = require('./valid-value')
+
+  , keys = Object.keys
+  , propertyIsEnumerable = Object.prototype.propertyIsEnumerable;
+
+module.exports = function (a, b) {
+       var k1, k2;
+
+       if (eq(value(a), value(b))) return true;
+
+       a = Object(a);
+       b = Object(b);
+
+       k1 = keys(a);
+       k2 = keys(b);
+       if (k1.length !== k2.length) return false;
+       return k1.every(function (key) {
+               if (!propertyIsEnumerable.call(b, key)) return false;
+               return eq(a[key], b[key]);
+       });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-empty.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-empty.js
new file mode 100644 (file)
index 0000000..7b51a87
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+var value = require('./valid-value')
+
+  , propertyIsEnumerable = Object.prototype.propertyIsEnumerable;
+
+module.exports = function (obj) {
+       var i;
+       value(obj);
+       for (i in obj) { //jslint: ignore
+               if (propertyIsEnumerable.call(obj, i)) return false;
+       }
+       return true;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-object.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-object.js
new file mode 100644 (file)
index 0000000..a86facf
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var map = { function: true, object: true };
+
+module.exports = function (x) {
+       return ((x != null) && map[typeof x]) || false;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-plain-object.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-plain-object.js
new file mode 100644 (file)
index 0000000..9a28231
--- /dev/null
@@ -0,0 +1,20 @@
+'use strict';
+
+var getPrototypeOf = Object.getPrototypeOf, prototype = Object.prototype
+  , toString = prototype.toString
+
+  , id = Object().toString();
+
+module.exports = function (value) {
+       var proto, constructor;
+       if (!value || (typeof value !== 'object') || (toString.call(value) !== id)) {
+               return false;
+       }
+       proto = getPrototypeOf(value);
+       if (proto === null) {
+               constructor = value.constructor;
+               if (typeof constructor !== 'function') return true;
+               return (constructor.prototype !== value);
+       }
+       return (proto === prototype) || (getPrototypeOf(proto) === null);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is.js
new file mode 100644 (file)
index 0000000..5778b50
--- /dev/null
@@ -0,0 +1,10 @@
+// Implementation credits go to:
+// http://wiki.ecmascript.org/doku.php?id=harmony:egal
+
+'use strict';
+
+module.exports = function (x, y) {
+       return (x === y) ?
+                       ((x !== 0) || ((1 / x) === (1 / y))) :
+                       ((x !== x) && (y !== y)); //jslint: ignore
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/key-of.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/key-of.js
new file mode 100644 (file)
index 0000000..8c44c8d
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+var eq   = require('./eq')
+  , some = require('./some');
+
+module.exports = function (obj, searchValue) {
+       var r;
+       return some(obj, function (value, name) {
+               if (eq(value, searchValue)) {
+                       r = name;
+                       return true;
+               }
+               return false;
+       }) ? r : null;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/implement.js
new file mode 100644 (file)
index 0000000..c6872bd
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(Object, 'keys', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/index.js
new file mode 100644 (file)
index 0000000..5ef0522
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Object.keys
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/is-implemented.js
new file mode 100644 (file)
index 0000000..40c32c3
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = function () {
+       try {
+               Object.keys('primitive');
+               return true;
+       } catch (e) { return false; }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/shim.js
new file mode 100644 (file)
index 0000000..034b6b2
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var keys = Object.keys;
+
+module.exports = function (object) {
+       return keys(object == null ? object : Object(object));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/map-keys.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/map-keys.js
new file mode 100644 (file)
index 0000000..26f0eca
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+var callable = require('./valid-callable')
+  , forEach  = require('./for-each')
+
+  , call = Function.prototype.call;
+
+module.exports = function (obj, cb/*, thisArg*/) {
+       var o = {}, thisArg = arguments[2];
+       callable(cb);
+       forEach(obj, function (value, key, obj, index) {
+               o[call.call(cb, thisArg, key, value, this, index)] = value;
+       }, obj);
+       return o;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/map.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/map.js
new file mode 100644 (file)
index 0000000..6b39d3c
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+var callable = require('./valid-callable')
+  , forEach  = require('./for-each')
+
+  , call = Function.prototype.call;
+
+module.exports = function (obj, cb/*, thisArg*/) {
+       var o = {}, thisArg = arguments[2];
+       callable(cb);
+       forEach(obj, function (value, key, obj, index) {
+               o[key] = call.call(cb, thisArg, value, key, obj, index);
+       });
+       return o;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/mixin-prototypes.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/mixin-prototypes.js
new file mode 100644 (file)
index 0000000..1ef5756
--- /dev/null
@@ -0,0 +1,34 @@
+'use strict';
+
+var value = require('./valid-value')
+  , mixin = require('./mixin')
+
+  , defineProperty = Object.defineProperty
+  , getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor
+  , getOwnPropertyNames = Object.getOwnPropertyNames
+  , getPrototypeOf = Object.getPrototypeOf
+  , hasOwnProperty = Object.prototype.hasOwnProperty;
+
+module.exports = function (target, source) {
+       var error, end, define;
+       target = Object(value(target));
+       source = Object(value(source));
+       end = getPrototypeOf(target);
+       if (source === end) return target;
+       try {
+               mixin(target, source);
+       } catch (e) { error = e; }
+       source = getPrototypeOf(source);
+       define = function (name) {
+               if (hasOwnProperty.call(target, name)) return;
+               try {
+                       defineProperty(target, name, getOwnPropertyDescriptor(source, name));
+               } catch (e) { error = e; }
+       };
+       while (source && (source !== end)) {
+               getOwnPropertyNames(source).forEach(define);
+               source = getPrototypeOf(source);
+       }
+       if (error) throw error;
+       return target;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/mixin.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/mixin.js
new file mode 100644 (file)
index 0000000..80b5df5
--- /dev/null
@@ -0,0 +1,19 @@
+'use strict';
+
+var value = require('./valid-value')
+
+  , defineProperty = Object.defineProperty
+  , getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor
+  , getOwnPropertyNames = Object.getOwnPropertyNames;
+
+module.exports = function (target, source) {
+       var error;
+       target = Object(value(target));
+       getOwnPropertyNames(Object(value(source))).forEach(function (name) {
+               try {
+                       defineProperty(target, name, getOwnPropertyDescriptor(source, name));
+               } catch (e) { error = e; }
+       });
+       if (error !== undefined) throw error;
+       return target;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/normalize-options.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/normalize-options.js
new file mode 100644 (file)
index 0000000..cf8ed8d
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+var forEach = Array.prototype.forEach, create = Object.create;
+
+var process = function (src, obj) {
+       var key;
+       for (key in src) obj[key] = src[key];
+};
+
+module.exports = function (options/*, …options*/) {
+       var result = create(null);
+       forEach.call(arguments, function (options) {
+               if (options == null) return;
+               process(Object(options), result);
+       });
+       return result;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/primitive-set.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/primitive-set.js
new file mode 100644 (file)
index 0000000..ada1095
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var forEach = Array.prototype.forEach, create = Object.create;
+
+module.exports = function (arg/*, …args*/) {
+       var set = create(null);
+       forEach.call(arguments, function (name) { set[name] = true; });
+       return set;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/safe-traverse.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/safe-traverse.js
new file mode 100644 (file)
index 0000000..7e1b5f4
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+var value = require('./valid-value');
+
+module.exports = function (obj/*, …names*/) {
+       var length, current = 1;
+       value(obj);
+       length = arguments.length - 1;
+       if (!length) return obj;
+       while (current < length) {
+               obj = obj[arguments[current++]];
+               if (obj == null) return undefined;
+       }
+       return obj[arguments[current]];
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/serialize.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/serialize.js
new file mode 100644 (file)
index 0000000..8113b68
--- /dev/null
@@ -0,0 +1,36 @@
+'use strict';
+
+var toArray  = require('./to-array')
+  , isDate   = require('../date/is-date')
+  , isRegExp = require('../reg-exp/is-reg-exp')
+
+  , isArray = Array.isArray, stringify = JSON.stringify
+  , keyValueToString = function (value, key) { return stringify(key) + ':' + exports(value); };
+
+var sparseMap = function (arr) {
+       var i, l = arr.length, result = new Array(l);
+       for (i = 0; i < l; ++i) {
+               if (!arr.hasOwnProperty(i)) continue;
+               result[i] = exports(arr[i]);
+       }
+       return result;
+};
+
+module.exports = exports = function (obj) {
+       if (obj == null) return String(obj);
+       switch (typeof obj) {
+       case 'string':
+               return stringify(obj);
+       case 'number':
+       case 'boolean':
+       case 'function':
+               return String(obj);
+       case 'object':
+               if (isArray(obj)) return '[' + sparseMap(obj) + ']';
+               if (isRegExp(obj)) return String(obj);
+               if (isDate(obj)) return 'new Date(' + obj.valueOf() + ')';
+               return '{' + toArray(obj, keyValueToString) + '}';
+       default:
+               throw new TypeError("Serialization of " + String(obj) + "is unsupported");
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/implement.js
new file mode 100644 (file)
index 0000000..000e6bd
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var shim;
+
+if (!require('./is-implemented')() && (shim = require('./shim'))) {
+       Object.defineProperty(Object, 'setPrototypeOf',
+               { value: shim, configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/index.js
new file mode 100644 (file)
index 0000000..ccc4099
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? Object.setPrototypeOf
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/is-implemented.js
new file mode 100644 (file)
index 0000000..98d0c84
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+var create = Object.create, getPrototypeOf = Object.getPrototypeOf
+  , x = {};
+
+module.exports = function (/*customCreate*/) {
+       var setPrototypeOf = Object.setPrototypeOf
+         , customCreate = arguments[0] || create;
+       if (typeof setPrototypeOf !== 'function') return false;
+       return getPrototypeOf(setPrototypeOf(customCreate(null), x)) === x;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/shim.js
new file mode 100644 (file)
index 0000000..4ec9446
--- /dev/null
@@ -0,0 +1,73 @@
+// Big thanks to @WebReflection for sorting this out
+// https://gist.github.com/WebReflection/5593554
+
+'use strict';
+
+var isObject      = require('../is-object')
+  , value         = require('../valid-value')
+
+  , isPrototypeOf = Object.prototype.isPrototypeOf
+  , defineProperty = Object.defineProperty
+  , nullDesc = { configurable: true, enumerable: false, writable: true,
+               value: undefined }
+  , validate;
+
+validate = function (obj, prototype) {
+       value(obj);
+       if ((prototype === null) || isObject(prototype)) return obj;
+       throw new TypeError('Prototype must be null or an object');
+};
+
+module.exports = (function (status) {
+       var fn, set;
+       if (!status) return null;
+       if (status.level === 2) {
+               if (status.set) {
+                       set = status.set;
+                       fn = function (obj, prototype) {
+                               set.call(validate(obj, prototype), prototype);
+                               return obj;
+                       };
+               } else {
+                       fn = function (obj, prototype) {
+                               validate(obj, prototype).__proto__ = prototype;
+                               return obj;
+                       };
+               }
+       } else {
+               fn = function self(obj, prototype) {
+                       var isNullBase;
+                       validate(obj, prototype);
+                       isNullBase = isPrototypeOf.call(self.nullPolyfill, obj);
+                       if (isNullBase) delete self.nullPolyfill.__proto__;
+                       if (prototype === null) prototype = self.nullPolyfill;
+                       obj.__proto__ = prototype;
+                       if (isNullBase) defineProperty(self.nullPolyfill, '__proto__', nullDesc);
+                       return obj;
+               };
+       }
+       return Object.defineProperty(fn, 'level', { configurable: false,
+               enumerable: false, writable: false, value: status.level });
+}((function () {
+       var x = Object.create(null), y = {}, set
+         , desc = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__');
+
+       if (desc) {
+               try {
+                       set = desc.set; // Opera crashes at this point
+                       set.call(x, y);
+               } catch (ignore) { }
+               if (Object.getPrototypeOf(x) === y) return { set: set, level: 2 };
+       }
+
+       x.__proto__ = y;
+       if (Object.getPrototypeOf(x) === y) return { level: 2 };
+
+       x = {};
+       x.__proto__ = y;
+       if (Object.getPrototypeOf(x) === y) return { level: 1 };
+
+       return false;
+}())));
+
+require('../create');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/some.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/some.js
new file mode 100644 (file)
index 0000000..cde5dde
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./_iterate')('some', false);
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/to-array.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/to-array.js
new file mode 100644 (file)
index 0000000..a954abb
--- /dev/null
@@ -0,0 +1,18 @@
+'use strict';
+
+var callable = require('./valid-callable')
+  , forEach  = require('./for-each')
+
+  , call = Function.prototype.call
+
+  , defaultCb = function (value, key) { return [key, value]; };
+
+module.exports = function (obj/*, cb, thisArg, compareFn*/) {
+       var a = [], cb = arguments[1], thisArg = arguments[2];
+       cb = (cb == null) ? defaultCb : callable(cb);
+
+       forEach(obj, function (value, key, obj, index) {
+               a.push(call.call(cb, thisArg, value, key, this, index));
+       }, obj, arguments[3]);
+       return a;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/unserialize.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/unserialize.js
new file mode 100644 (file)
index 0000000..ce68e40
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var value  = require('./valid-value');
+
+module.exports = exports = function (code) {
+       return (new Function('return ' + value(code)))();
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/valid-callable.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/valid-callable.js
new file mode 100644 (file)
index 0000000..c977527
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (fn) {
+       if (typeof fn !== 'function') throw new TypeError(fn + " is not a function");
+       return fn;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/valid-object.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/valid-object.js
new file mode 100644 (file)
index 0000000..f82bd51
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var isObject = require('./is-object');
+
+module.exports = function (value) {
+       if (!isObject(value)) throw new TypeError(value + " is not an Object");
+       return value;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/valid-value.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/valid-value.js
new file mode 100644 (file)
index 0000000..36c8ec3
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (value) {
+       if (value == null) throw new TypeError("Cannot use null or undefined");
+       return value;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-array-like-object.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-array-like-object.js
new file mode 100644 (file)
index 0000000..89e12c5
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var isArrayLike = require('./is-array-like')
+  , isObject    = require('./is-object');
+
+module.exports = function (obj) {
+       if (isObject(obj) && isArrayLike(obj)) return obj;
+       throw new TypeError(obj + " is not array-like object");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-array-like.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-array-like.js
new file mode 100644 (file)
index 0000000..6a35b54
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var isArrayLike = require('./is-array-like');
+
+module.exports = function (obj) {
+       if (isArrayLike(obj)) return obj;
+       throw new TypeError(obj + " is not array-like value");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-stringifiable-value.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-stringifiable-value.js
new file mode 100644 (file)
index 0000000..9df3b66
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+var value         = require('./valid-value')
+  , stringifiable = require('./validate-stringifiable');
+
+module.exports = function (x) { return stringifiable(value(x)); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-stringifiable.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-stringifiable.js
new file mode 100644 (file)
index 0000000..eba7ce7
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function (stringifiable) {
+       try {
+               return String(stringifiable);
+       } catch (e) {
+               throw new TypeError("Passed argument cannot be stringifed");
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/package.json b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/package.json
new file mode 100644 (file)
index 0000000..01d6532
--- /dev/null
@@ -0,0 +1,74 @@
+{
+  "name": "es5-ext",
+  "version": "0.10.7",
+  "description": "ECMAScript 5 extensions and ES6 shims",
+  "author": {
+    "name": "Mariusz Nowak",
+    "email": "medyk@medikoo.com",
+    "url": "http://www.medikoo.com/"
+  },
+  "keywords": [
+    "ecmascript",
+    "ecmascript5",
+    "ecmascript6",
+    "es5",
+    "es6",
+    "extensions",
+    "ext",
+    "addons",
+    "extras",
+    "harmony",
+    "javascript",
+    "polyfill",
+    "shim",
+    "util",
+    "utils",
+    "utilities"
+  ],
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/medikoo/es5-ext.git"
+  },
+  "dependencies": {
+    "es6-iterator": "~0.1.3",
+    "es6-symbol": "~2.0.1"
+  },
+  "devDependencies": {
+    "tad": "~0.2.2",
+    "xlint": "~0.2.2",
+    "xlint-jslint-medikoo": "~0.1.2"
+  },
+  "scripts": {
+    "lint": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream",
+    "lint-console": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch",
+    "test": "node ./node_modules/tad/bin/tad"
+  },
+  "license": "MIT",
+  "gitHead": "5b63ee02f50dfbc70dc1f62bc66b8718af443f83",
+  "bugs": {
+    "url": "https://github.com/medikoo/es5-ext/issues"
+  },
+  "homepage": "https://github.com/medikoo/es5-ext",
+  "_id": "es5-ext@0.10.7",
+  "_shasum": "dfaea50721301042e2d89c1719d43493fa821656",
+  "_from": "es5-ext@>=0.10.6 <0.11.0",
+  "_npmVersion": "2.7.4",
+  "_nodeVersion": "0.12.2",
+  "_npmUser": {
+    "name": "medikoo",
+    "email": "medikoo+npm@medikoo.com"
+  },
+  "maintainers": [
+    {
+      "name": "medikoo",
+      "email": "medikoo+npm@medikoo.com"
+    }
+  ],
+  "dist": {
+    "shasum": "dfaea50721301042e2d89c1719d43493fa821656",
+    "tarball": "http://registry.npmjs.org/es5-ext/-/es5-ext-0.10.7.tgz"
+  },
+  "directories": {},
+  "_resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.7.tgz",
+  "readme": "ERROR: No README data found!"
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/index.js
new file mode 100644 (file)
index 0000000..f7e7a58
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = {
+       isSticky:  require('./is-sticky'),
+       isUnicode: require('./is-unicode'),
+       match:     require('./match'),
+       replace:   require('./replace'),
+       search:    require('./search'),
+       split:     require('./split')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/is-sticky.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/is-sticky.js
new file mode 100644 (file)
index 0000000..830a481
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var validRegExp = require('../valid-reg-exp')
+
+  , re = /\/[a-xz]*y[a-xz]*$/;
+
+module.exports = function () {
+       return Boolean(String(validRegExp(this)).match(re));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/is-unicode.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/is-unicode.js
new file mode 100644 (file)
index 0000000..b005f6d
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var validRegExp = require('../valid-reg-exp')
+
+  , re = /\/[a-xz]*u[a-xz]*$/;
+
+module.exports = function () {
+       return Boolean(String(validRegExp(this)).match(re));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/implement.js
new file mode 100644 (file)
index 0000000..921c936
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(RegExp.prototype, 'match', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/index.js
new file mode 100644 (file)
index 0000000..0534ac3
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? RegExp.prototype.match
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/is-implemented.js
new file mode 100644 (file)
index 0000000..b7e9964
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var re = /foo/;
+
+module.exports = function () {
+       if (typeof re.match !== 'function') return false;
+       return re.match('barfoobar') && !re.match('elo');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/shim.js
new file mode 100644 (file)
index 0000000..4f99cf4
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var validRegExp = require('../../valid-reg-exp');
+
+module.exports = function (string) {
+       validRegExp(this);
+       return String(string).match(this);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/implement.js
new file mode 100644 (file)
index 0000000..ad580de
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(RegExp.prototype, 'replace', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/index.js
new file mode 100644 (file)
index 0000000..5658177
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? RegExp.prototype.replace
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/is-implemented.js
new file mode 100644 (file)
index 0000000..1b42d25
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var re = /foo/;
+
+module.exports = function () {
+       if (typeof re.replace !== 'function') return false;
+       return re.replace('foobar', 'mar') === 'marbar';
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/shim.js
new file mode 100644 (file)
index 0000000..c3e6aeb
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var validRegExp = require('../../valid-reg-exp');
+
+module.exports = function (string, replaceValue) {
+       validRegExp(this);
+       return String(string).replace(this, replaceValue);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/implement.js
new file mode 100644 (file)
index 0000000..3804f4e
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(RegExp.prototype, 'search', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/index.js
new file mode 100644 (file)
index 0000000..67995d4
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? RegExp.prototype.search
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/is-implemented.js
new file mode 100644 (file)
index 0000000..efba889
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var re = /foo/;
+
+module.exports = function () {
+       if (typeof re.search !== 'function') return false;
+       return re.search('barfoo') === 3;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/shim.js
new file mode 100644 (file)
index 0000000..6d9dcae
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var validRegExp = require('../../valid-reg-exp');
+
+module.exports = function (string) {
+       validRegExp(this);
+       return String(string).search(this);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/implement.js
new file mode 100644 (file)
index 0000000..50facb6
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(RegExp.prototype, 'split', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/index.js
new file mode 100644 (file)
index 0000000..f101f5a
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? RegExp.prototype.split
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/is-implemented.js
new file mode 100644 (file)
index 0000000..7244c99
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var re = /\|/;
+
+module.exports = function () {
+       if (typeof re.split !== 'function') return false;
+       return re.split('bar|foo')[1] === 'foo';
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/shim.js
new file mode 100644 (file)
index 0000000..76154e7
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var validRegExp = require('../../valid-reg-exp');
+
+module.exports = function (string) {
+       validRegExp(this);
+       return String(string).split(this);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/sticky/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/sticky/implement.js
new file mode 100644 (file)
index 0000000..7e8af1d
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var isSticky = require('../is-sticky');
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(RegExp.prototype, 'sticky', { configurable: true,
+               enumerable: false, get: isSticky });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/sticky/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/sticky/is-implemented.js
new file mode 100644 (file)
index 0000000..379c4a5
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function () {
+       return RegExp.prototype.sticky === false;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/unicode/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/unicode/implement.js
new file mode 100644 (file)
index 0000000..5a82a4d
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var isUnicode = require('../is-unicode');
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(RegExp.prototype, 'unicode', { configurable: true,
+               enumerable: false, get: isUnicode });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/unicode/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/unicode/is-implemented.js
new file mode 100644 (file)
index 0000000..a8b15b3
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function () {
+       return RegExp.prototype.unicode === false;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/escape.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/escape.js
new file mode 100644 (file)
index 0000000..a2363fc
--- /dev/null
@@ -0,0 +1,9 @@
+// Thanks to Andrew Clover:
+// http://stackoverflow.com/questions/3561493
+// /is-there-a-regexp-escape-function-in-javascript
+
+'use strict';
+
+var re = /[\-\/\\\^$*+?.()|\[\]{}]/g;
+
+module.exports = function (str) { return String(str).replace(re, '\\$&'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/index.js
new file mode 100644 (file)
index 0000000..75ea313
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = {
+       '#':         require('./#'),
+       escape:      require('./escape'),
+       isRegExp:    require('./is-reg-exp'),
+       validRegExp: require('./valid-reg-exp')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/is-reg-exp.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/is-reg-exp.js
new file mode 100644 (file)
index 0000000..6eb1297
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var toString = Object.prototype.toString
+
+  , id = toString.call(/a/);
+
+module.exports = function (x) {
+       return (x && (x instanceof RegExp || (toString.call(x) === id))) || false;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/valid-reg-exp.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/valid-reg-exp.js
new file mode 100644 (file)
index 0000000..d3a7764
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var isRegExp = require('./is-reg-exp');
+
+module.exports = function (x) {
+       if (!isRegExp(x)) throw new TypeError(x + " is not a RegExp object");
+       return x;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/implement.js
new file mode 100644 (file)
index 0000000..4494d7b
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(String.prototype, require('es6-symbol').iterator,
+               { value: require('./shim'), configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/index.js
new file mode 100644 (file)
index 0000000..22f15e6
--- /dev/null
@@ -0,0 +1,4 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? String.prototype[require('es6-symbol').iterator] : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/is-implemented.js
new file mode 100644 (file)
index 0000000..f5c462d
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var iteratorSymbol = require('es6-symbol').iterator;
+
+module.exports = function () {
+       var str = '🙈f', iterator, result;
+       if (typeof str[iteratorSymbol] !== 'function') return false;
+       iterator = str[iteratorSymbol]();
+       if (!iterator) return false;
+       if (typeof iterator.next !== 'function') return false;
+       result = iterator.next();
+       if (!result) return false;
+       if (result.value !== '🙈') return false;
+       if (result.done !== false) return false;
+       return true;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/shim.js
new file mode 100644 (file)
index 0000000..0be3029
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+var StringIterator = require('es6-iterator/string')
+  , value          = require('../../../object/valid-value');
+
+module.exports = function () { return new StringIterator(value(this)); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/at.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/at.js
new file mode 100644 (file)
index 0000000..77bd251
--- /dev/null
@@ -0,0 +1,33 @@
+// Based on: https://github.com/mathiasbynens/String.prototype.at
+// Thanks @mathiasbynens !
+
+'use strict';
+
+var toInteger  = require('../../number/to-integer')
+  , validValue = require('../../object/valid-value');
+
+module.exports = function (pos) {
+       var str = String(validValue(this)), size = str.length
+         , cuFirst, cuSecond, nextPos, len;
+       pos = toInteger(pos);
+
+       // Account for out-of-bounds indices
+       // The odd lower bound is because the ToInteger operation is
+       // going to round `n` to `0` for `-1 < n <= 0`.
+       if (pos <= -1 || pos >= size) return '';
+
+       // Second half of `ToInteger`
+       pos = pos | 0;
+       // Get the first code unit and code unit value
+       cuFirst = str.charCodeAt(pos);
+       nextPos = pos + 1;
+       len = 1;
+       if ( // check if it’s the start of a surrogate pair
+               (cuFirst >= 0xD800) && (cuFirst <= 0xDBFF) && // high surrogate
+                       (size > nextPos) // there is a next code unit
+       ) {
+               cuSecond = str.charCodeAt(nextPos);
+               if (cuSecond >= 0xDC00 && cuSecond <= 0xDFFF) len = 2; // low surrogate
+       }
+       return str.slice(pos, pos + len);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/camel-to-hyphen.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/camel-to-hyphen.js
new file mode 100644 (file)
index 0000000..1cb8d12
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+var replace = String.prototype.replace
+  , re = /([A-Z])/g;
+
+module.exports = function () {
+       var str = replace.call(this, re, "-$1").toLowerCase();
+       if (str[0] === '-') str = str.slice(1);
+       return str;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/capitalize.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/capitalize.js
new file mode 100644 (file)
index 0000000..ed76827
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var value = require('../../object/valid-value');
+
+module.exports = function () {
+       var str = String(value(this));
+       return str.charAt(0).toUpperCase() + str.slice(1);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/case-insensitive-compare.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/case-insensitive-compare.js
new file mode 100644 (file)
index 0000000..599cb83
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var toLowerCase = String.prototype.toLowerCase;
+
+module.exports = function (other) {
+       return toLowerCase.call(this).localeCompare(toLowerCase.call(String(other)));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/implement.js
new file mode 100644 (file)
index 0000000..1e7a37b
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(String.prototype, 'codePointAt',
+               { value: require('./shim'), configurable: true, enumerable: false,
+                       writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/index.js
new file mode 100644 (file)
index 0000000..7e91d83
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? String.prototype.codePointAt
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/is-implemented.js
new file mode 100644 (file)
index 0000000..b271589
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var str = 'abc\uD834\uDF06def';
+
+module.exports = function () {
+       if (typeof str.codePointAt !== 'function') return false;
+       return str.codePointAt(3) === 0x1D306;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/shim.js
new file mode 100644 (file)
index 0000000..1c9038b
--- /dev/null
@@ -0,0 +1,26 @@
+// Based on: https://github.com/mathiasbynens/String.prototype.codePointAt
+// Thanks @mathiasbynens !
+
+'use strict';
+
+var toInteger  = require('../../../number/to-integer')
+  , validValue = require('../../../object/valid-value');
+
+module.exports = function (pos) {
+       var str = String(validValue(this)), l = str.length, first, second;
+       pos = toInteger(pos);
+
+       // Account for out-of-bounds indices:
+       if (pos < 0 || pos >= l) return undefined;
+
+       // Get the first code unit
+       first = str.charCodeAt(pos);
+       if ((first >= 0xD800) && (first <= 0xDBFF) && (l > pos + 1)) {
+               second = str.charCodeAt(pos + 1);
+               if (second >= 0xDC00 && second <= 0xDFFF) {
+                       // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
+                       return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
+               }
+       }
+       return first;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/implement.js
new file mode 100644 (file)
index 0000000..6b7a3c0
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(String.prototype, 'contains',
+               { value: require('./shim'), configurable: true, enumerable: false,
+                       writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/index.js
new file mode 100644 (file)
index 0000000..abb3e37
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? String.prototype.contains
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/is-implemented.js
new file mode 100644 (file)
index 0000000..6f7d4b7
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var str = 'razdwatrzy';
+
+module.exports = function () {
+       if (typeof str.contains !== 'function') return false;
+       return ((str.contains('dwa') === true) && (str.contains('foo') === false));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/shim.js
new file mode 100644 (file)
index 0000000..89e39e7
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var indexOf = String.prototype.indexOf;
+
+module.exports = function (searchString/*, position*/) {
+       return indexOf.call(this, searchString, arguments[1]) > -1;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/implement.js
new file mode 100644 (file)
index 0000000..0b09025
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(String.prototype, 'endsWith',
+               { value: require('./shim'), configurable: true, enumerable: false,
+                       writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/index.js
new file mode 100644 (file)
index 0000000..d2d9484
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? String.prototype.endsWith
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/is-implemented.js
new file mode 100644 (file)
index 0000000..f3bb008
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var str = 'razdwatrzy';
+
+module.exports = function () {
+       if (typeof str.endsWith !== 'function') return false;
+       return ((str.endsWith('trzy') === true) && (str.endsWith('raz') === false));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/shim.js
new file mode 100644 (file)
index 0000000..26cbdb1
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var toInteger = require('../../../number/to-integer')
+  , value     = require('../../../object/valid-value')
+
+  , min = Math.min, max = Math.max;
+
+module.exports = function (searchString/*, endPosition*/) {
+       var self, start, endPos;
+       self = String(value(this));
+       searchString = String(searchString);
+       endPos = arguments[1];
+       start = ((endPos == null) ? self.length :
+                       min(max(toInteger(endPos), 0), self.length)) - searchString.length;
+       return (start < 0) ? false : (self.indexOf(searchString, start) === start);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/hyphen-to-camel.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/hyphen-to-camel.js
new file mode 100644 (file)
index 0000000..8928b02
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var replace = String.prototype.replace
+
+  , re = /-([a-z0-9])/g
+  , toUpperCase = function (m, a) { return a.toUpperCase(); };
+
+module.exports = function () { return replace.call(this, re, toUpperCase); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/indent.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/indent.js
new file mode 100644 (file)
index 0000000..223bd82
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+var repeat = require('./repeat')
+
+  , replace = String.prototype.replace
+  , re = /(\r\n|[\n\r\u2028\u2029])([\u0000-\u0009\u000b-\uffff]+)/g;
+
+module.exports = function (indent/*, count*/) {
+       var count = arguments[1];
+       indent = repeat.call(String(indent), (count == null) ? 1 : count);
+       return indent + replace.call(this, re, '$1' + indent + '$2');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/index.js
new file mode 100644 (file)
index 0000000..d45d747
--- /dev/null
@@ -0,0 +1,21 @@
+'use strict';
+
+module.exports = {
+       '@@iterator':           require('./@@iterator'),
+       at:                     require('./at'),
+       camelToHyphen:          require('./camel-to-hyphen'),
+       capitalize:             require('./capitalize'),
+       caseInsensitiveCompare: require('./case-insensitive-compare'),
+       codePointAt:            require('./code-point-at'),
+       contains:               require('./contains'),
+       hyphenToCamel:          require('./hyphen-to-camel'),
+       endsWith:               require('./ends-with'),
+       indent:                 require('./indent'),
+       last:                   require('./last'),
+       normalize:              require('./normalize'),
+       pad:                    require('./pad'),
+       plainReplace:           require('./plain-replace'),
+       plainReplaceAll:        require('./plain-replace-all'),
+       repeat:                 require('./repeat'),
+       startsWith:             require('./starts-with')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/last.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/last.js
new file mode 100644 (file)
index 0000000..d5cf46e
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var value = require('../../object/valid-value');
+
+module.exports = function () {
+       var self = String(value(this)), l = self.length;
+       return l ? self[l - 1] : null;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/_data.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/_data.js
new file mode 100644 (file)
index 0000000..e4e00a3
--- /dev/null
@@ -0,0 +1,69 @@
+'use strict';
+
+module.exports = { 0:{60:[,,{824:8814}],61:[,,{824:8800}],62:[,,{824:8815}],65:[,,{768:192,769:193,770:194,771:195,772:256,774:258,775:550,776:196,777:7842,778:197,780:461,783:512,785:514,803:7840,805:7680,808:260}],66:[,,{775:7682,803:7684,817:7686}],67:[,,{769:262,770:264,775:266,780:268,807:199}],68:[,,{775:7690,780:270,803:7692,807:7696,813:7698,817:7694}],69:[,,{768:200,769:201,770:202,771:7868,772:274,774:276,775:278,776:203,777:7866,780:282,783:516,785:518,803:7864,807:552,808:280,813:7704,816:7706}],70:[,,{775:7710}],71:[,,{769:500,770:284,772:7712,774:286,775:288,780:486,807:290}],72:[,,{770:292,775:7714,776:7718,780:542,803:7716,807:7720,814:7722}],73:[,,{768:204,769:205,770:206,771:296,772:298,774:300,775:304,776:207,777:7880,780:463,783:520,785:522,803:7882,808:302,816:7724}],74:[,,{770:308}],75:[,,{769:7728,780:488,803:7730,807:310,817:7732}],76:[,,{769:313,780:317,803:7734,807:315,813:7740,817:7738}],77:[,,{769:7742,775:7744,803:7746}],78:[,,{768:504,769:323,771:209,775:7748,780:327,803:7750,807:325,813:7754,817:7752}],79:[,,{768:210,769:211,770:212,771:213,772:332,774:334,775:558,776:214,777:7886,779:336,780:465,783:524,785:526,795:416,803:7884,808:490}],80:[,,{769:7764,775:7766}],82:[,,{769:340,775:7768,780:344,783:528,785:530,803:7770,807:342,817:7774}],83:[,,{769:346,770:348,775:7776,780:352,803:7778,806:536,807:350}],84:[,,{775:7786,780:356,803:7788,806:538,807:354,813:7792,817:7790}],85:[,,{768:217,769:218,770:219,771:360,772:362,774:364,776:220,777:7910,778:366,779:368,780:467,783:532,785:534,795:431,803:7908,804:7794,808:370,813:7798,816:7796}],86:[,,{771:7804,803:7806}],87:[,,{768:7808,769:7810,770:372,775:7814,776:7812,803:7816}],88:[,,{775:7818,776:7820}],89:[,,{768:7922,769:221,770:374,771:7928,772:562,775:7822,776:376,777:7926,803:7924}],90:[,,{769:377,770:7824,775:379,780:381,803:7826,817:7828}],97:[,,{768:224,769:225,770:226,771:227,772:257,774:259,775:551,776:228,777:7843,778:229,780:462,783:513,785:515,803:7841,805:7681,808:261}],98:[,,{775:7683,803:7685,817:7687}],99:[,,{769:263,770:265,775:267,780:269,807:231}],100:[,,{775:7691,780:271,803:7693,807:7697,813:7699,817:7695}],101:[,,{768:232,769:233,770:234,771:7869,772:275,774:277,775:279,776:235,777:7867,780:283,783:517,785:519,803:7865,807:553,808:281,813:7705,816:7707}],102:[,,{775:7711}],103:[,,{769:501,770:285,772:7713,774:287,775:289,780:487,807:291}],104:[,,{770:293,775:7715,776:7719,780:543,803:7717,807:7721,814:7723,817:7830}],105:[,,{768:236,769:237,770:238,771:297,772:299,774:301,776:239,777:7881,780:464,783:521,785:523,803:7883,808:303,816:7725}],106:[,,{770:309,780:496}],107:[,,{769:7729,780:489,803:7731,807:311,817:7733}],108:[,,{769:314,780:318,803:7735,807:316,813:7741,817:7739}],109:[,,{769:7743,775:7745,803:7747}],110:[,,{768:505,769:324,771:241,775:7749,780:328,803:7751,807:326,813:7755,817:7753}],111:[,,{768:242,769:243,770:244,771:245,772:333,774:335,775:559,776:246,777:7887,779:337,780:466,783:525,785:527,795:417,803:7885,808:491}],112:[,,{769:7765,775:7767}],114:[,,{769:341,775:7769,780:345,783:529,785:531,803:7771,807:343,817:7775}],115:[,,{769:347,770:349,775:7777,780:353,803:7779,806:537,807:351}],116:[,,{775:7787,776:7831,780:357,803:7789,806:539,807:355,813:7793,817:7791}],117:[,,{768:249,769:250,770:251,771:361,772:363,774:365,776:252,777:7911,778:367,779:369,780:468,783:533,785:535,795:432,803:7909,804:7795,808:371,813:7799,816:7797}],118:[,,{771:7805,803:7807}],119:[,,{768:7809,769:7811,770:373,775:7815,776:7813,778:7832,803:7817}],120:[,,{775:7819,776:7821}],121:[,,{768:7923,769:253,770:375,771:7929,772:563,775:7823,776:255,777:7927,778:7833,803:7925}],122:[,,{769:378,770:7825,775:380,780:382,803:7827,817:7829}],160:[[32],256],168:[[32,776],256,{768:8173,769:901,834:8129}],170:[[97],256],175:[[32,772],256],178:[[50],256],179:[[51],256],180:[[32,769],256],181:[[956],256],184:[[32,807],256],185:[[49],256],186:[[111],256],188:[[49,8260,52],256],189:[[49,8260,50],256],190:[[51,8260,52],256],192:[[65,768]],193:[[65,769]],194:[[65,770],,{768:7846,769:7844,771:7850,777:7848}],195:[[65,771]],196:[[65,776],,{772:478}],197:[[65,778],,{769:506}],198:[,,{769:508,772:482}],199:[[67,807],,{769:7688}],200:[[69,768]],201:[[69,769]],202:[[69,770],,{768:7872,769:7870,771:7876,777:7874}],203:[[69,776]],204:[[73,768]],205:[[73,769]],206:[[73,770]],207:[[73,776],,{769:7726}],209:[[78,771]],210:[[79,768]],211:[[79,769]],212:[[79,770],,{768:7890,769:7888,771:7894,777:7892}],213:[[79,771],,{769:7756,772:556,776:7758}],214:[[79,776],,{772:554}],216:[,,{769:510}],217:[[85,768]],218:[[85,769]],219:[[85,770]],220:[[85,776],,{768:475,769:471,772:469,780:473}],221:[[89,769]],224:[[97,768]],225:[[97,769]],226:[[97,770],,{768:7847,769:7845,771:7851,777:7849}],227:[[97,771]],228:[[97,776],,{772:479}],229:[[97,778],,{769:507}],230:[,,{769:509,772:483}],231:[[99,807],,{769:7689}],232:[[101,768]],233:[[101,769]],234:[[101,770],,{768:7873,769:7871,771:7877,777:7875}],235:[[101,776]],236:[[105,768]],237:[[105,769]],238:[[105,770]],239:[[105,776],,{769:7727}],241:[[110,771]],242:[[111,768]],243:[[111,769]],244:[[111,770],,{768:7891,769:7889,771:7895,777:7893}],245:[[111,771],,{769:7757,772:557,776:7759}],246:[[111,776],,{772:555}],248:[,,{769:511}],249:[[117,768]],250:[[117,769]],251:[[117,770]],252:[[117,776],,{768:476,769:472,772:470,780:474}],253:[[121,769]],255:[[121,776]]},
+       256:{256:[[65,772]],257:[[97,772]],258:[[65,774],,{768:7856,769:7854,771:7860,777:7858}],259:[[97,774],,{768:7857,769:7855,771:7861,777:7859}],260:[[65,808]],261:[[97,808]],262:[[67,769]],263:[[99,769]],264:[[67,770]],265:[[99,770]],266:[[67,775]],267:[[99,775]],268:[[67,780]],269:[[99,780]],270:[[68,780]],271:[[100,780]],274:[[69,772],,{768:7700,769:7702}],275:[[101,772],,{768:7701,769:7703}],276:[[69,774]],277:[[101,774]],278:[[69,775]],279:[[101,775]],280:[[69,808]],281:[[101,808]],282:[[69,780]],283:[[101,780]],284:[[71,770]],285:[[103,770]],286:[[71,774]],287:[[103,774]],288:[[71,775]],289:[[103,775]],290:[[71,807]],291:[[103,807]],292:[[72,770]],293:[[104,770]],296:[[73,771]],297:[[105,771]],298:[[73,772]],299:[[105,772]],300:[[73,774]],301:[[105,774]],302:[[73,808]],303:[[105,808]],304:[[73,775]],306:[[73,74],256],307:[[105,106],256],308:[[74,770]],309:[[106,770]],310:[[75,807]],311:[[107,807]],313:[[76,769]],314:[[108,769]],315:[[76,807]],316:[[108,807]],317:[[76,780]],318:[[108,780]],319:[[76,183],256],320:[[108,183],256],323:[[78,769]],324:[[110,769]],325:[[78,807]],326:[[110,807]],327:[[78,780]],328:[[110,780]],329:[[700,110],256],332:[[79,772],,{768:7760,769:7762}],333:[[111,772],,{768:7761,769:7763}],334:[[79,774]],335:[[111,774]],336:[[79,779]],337:[[111,779]],340:[[82,769]],341:[[114,769]],342:[[82,807]],343:[[114,807]],344:[[82,780]],345:[[114,780]],346:[[83,769],,{775:7780}],347:[[115,769],,{775:7781}],348:[[83,770]],349:[[115,770]],350:[[83,807]],351:[[115,807]],352:[[83,780],,{775:7782}],353:[[115,780],,{775:7783}],354:[[84,807]],355:[[116,807]],356:[[84,780]],357:[[116,780]],360:[[85,771],,{769:7800}],361:[[117,771],,{769:7801}],362:[[85,772],,{776:7802}],363:[[117,772],,{776:7803}],364:[[85,774]],365:[[117,774]],366:[[85,778]],367:[[117,778]],368:[[85,779]],369:[[117,779]],370:[[85,808]],371:[[117,808]],372:[[87,770]],373:[[119,770]],374:[[89,770]],375:[[121,770]],376:[[89,776]],377:[[90,769]],378:[[122,769]],379:[[90,775]],380:[[122,775]],381:[[90,780]],382:[[122,780]],383:[[115],256,{775:7835}],416:[[79,795],,{768:7900,769:7898,771:7904,777:7902,803:7906}],417:[[111,795],,{768:7901,769:7899,771:7905,777:7903,803:7907}],431:[[85,795],,{768:7914,769:7912,771:7918,777:7916,803:7920}],432:[[117,795],,{768:7915,769:7913,771:7919,777:7917,803:7921}],439:[,,{780:494}],452:[[68,381],256],453:[[68,382],256],454:[[100,382],256],455:[[76,74],256],456:[[76,106],256],457:[[108,106],256],458:[[78,74],256],459:[[78,106],256],460:[[110,106],256],461:[[65,780]],462:[[97,780]],463:[[73,780]],464:[[105,780]],465:[[79,780]],466:[[111,780]],467:[[85,780]],468:[[117,780]],469:[[220,772]],470:[[252,772]],471:[[220,769]],472:[[252,769]],473:[[220,780]],474:[[252,780]],475:[[220,768]],476:[[252,768]],478:[[196,772]],479:[[228,772]],480:[[550,772]],481:[[551,772]],482:[[198,772]],483:[[230,772]],486:[[71,780]],487:[[103,780]],488:[[75,780]],489:[[107,780]],490:[[79,808],,{772:492}],491:[[111,808],,{772:493}],492:[[490,772]],493:[[491,772]],494:[[439,780]],495:[[658,780]],496:[[106,780]],497:[[68,90],256],498:[[68,122],256],499:[[100,122],256],500:[[71,769]],501:[[103,769]],504:[[78,768]],505:[[110,768]],506:[[197,769]],507:[[229,769]],508:[[198,769]],509:[[230,769]],510:[[216,769]],511:[[248,769]],66045:[,220]},
+       512:{512:[[65,783]],513:[[97,783]],514:[[65,785]],515:[[97,785]],516:[[69,783]],517:[[101,783]],518:[[69,785]],519:[[101,785]],520:[[73,783]],521:[[105,783]],522:[[73,785]],523:[[105,785]],524:[[79,783]],525:[[111,783]],526:[[79,785]],527:[[111,785]],528:[[82,783]],529:[[114,783]],530:[[82,785]],531:[[114,785]],532:[[85,783]],533:[[117,783]],534:[[85,785]],535:[[117,785]],536:[[83,806]],537:[[115,806]],538:[[84,806]],539:[[116,806]],542:[[72,780]],543:[[104,780]],550:[[65,775],,{772:480}],551:[[97,775],,{772:481}],552:[[69,807],,{774:7708}],553:[[101,807],,{774:7709}],554:[[214,772]],555:[[246,772]],556:[[213,772]],557:[[245,772]],558:[[79,775],,{772:560}],559:[[111,775],,{772:561}],560:[[558,772]],561:[[559,772]],562:[[89,772]],563:[[121,772]],658:[,,{780:495}],688:[[104],256],689:[[614],256],690:[[106],256],691:[[114],256],692:[[633],256],693:[[635],256],694:[[641],256],695:[[119],256],696:[[121],256],728:[[32,774],256],729:[[32,775],256],730:[[32,778],256],731:[[32,808],256],732:[[32,771],256],733:[[32,779],256],736:[[611],256],737:[[108],256],738:[[115],256],739:[[120],256],740:[[661],256]},
+       768:{768:[,230],769:[,230],770:[,230],771:[,230],772:[,230],773:[,230],774:[,230],775:[,230],776:[,230,{769:836}],777:[,230],778:[,230],779:[,230],780:[,230],781:[,230],782:[,230],783:[,230],784:[,230],785:[,230],786:[,230],787:[,230],788:[,230],789:[,232],790:[,220],791:[,220],792:[,220],793:[,220],794:[,232],795:[,216],796:[,220],797:[,220],798:[,220],799:[,220],800:[,220],801:[,202],802:[,202],803:[,220],804:[,220],805:[,220],806:[,220],807:[,202],808:[,202],809:[,220],810:[,220],811:[,220],812:[,220],813:[,220],814:[,220],815:[,220],816:[,220],817:[,220],818:[,220],819:[,220],820:[,1],821:[,1],822:[,1],823:[,1],824:[,1],825:[,220],826:[,220],827:[,220],828:[,220],829:[,230],830:[,230],831:[,230],832:[[768],230],833:[[769],230],834:[,230],835:[[787],230],836:[[776,769],230],837:[,240],838:[,230],839:[,220],840:[,220],841:[,220],842:[,230],843:[,230],844:[,230],845:[,220],846:[,220],848:[,230],849:[,230],850:[,230],851:[,220],852:[,220],853:[,220],854:[,220],855:[,230],856:[,232],857:[,220],858:[,220],859:[,230],860:[,233],861:[,234],862:[,234],863:[,233],864:[,234],865:[,234],866:[,233],867:[,230],868:[,230],869:[,230],870:[,230],871:[,230],872:[,230],873:[,230],874:[,230],875:[,230],876:[,230],877:[,230],878:[,230],879:[,230],884:[[697]],890:[[32,837],256],894:[[59]],900:[[32,769],256],901:[[168,769]],902:[[913,769]],903:[[183]],904:[[917,769]],905:[[919,769]],906:[[921,769]],908:[[927,769]],910:[[933,769]],911:[[937,769]],912:[[970,769]],913:[,,{768:8122,769:902,772:8121,774:8120,787:7944,788:7945,837:8124}],917:[,,{768:8136,769:904,787:7960,788:7961}],919:[,,{768:8138,769:905,787:7976,788:7977,837:8140}],921:[,,{768:8154,769:906,772:8153,774:8152,776:938,787:7992,788:7993}],927:[,,{768:8184,769:908,787:8008,788:8009}],929:[,,{788:8172}],933:[,,{768:8170,769:910,772:8169,774:8168,776:939,788:8025}],937:[,,{768:8186,769:911,787:8040,788:8041,837:8188}],938:[[921,776]],939:[[933,776]],940:[[945,769],,{837:8116}],941:[[949,769]],942:[[951,769],,{837:8132}],943:[[953,769]],944:[[971,769]],945:[,,{768:8048,769:940,772:8113,774:8112,787:7936,788:7937,834:8118,837:8115}],949:[,,{768:8050,769:941,787:7952,788:7953}],951:[,,{768:8052,769:942,787:7968,788:7969,834:8134,837:8131}],953:[,,{768:8054,769:943,772:8145,774:8144,776:970,787:7984,788:7985,834:8150}],959:[,,{768:8056,769:972,787:8000,788:8001}],961:[,,{787:8164,788:8165}],965:[,,{768:8058,769:973,772:8161,774:8160,776:971,787:8016,788:8017,834:8166}],969:[,,{768:8060,769:974,787:8032,788:8033,834:8182,837:8179}],970:[[953,776],,{768:8146,769:912,834:8151}],971:[[965,776],,{768:8162,769:944,834:8167}],972:[[959,769]],973:[[965,769]],974:[[969,769],,{837:8180}],976:[[946],256],977:[[952],256],978:[[933],256,{769:979,776:980}],979:[[978,769]],980:[[978,776]],981:[[966],256],982:[[960],256],1008:[[954],256],1009:[[961],256],1010:[[962],256],1012:[[920],256],1013:[[949],256],1017:[[931],256]},
+       1024:{1024:[[1045,768]],1025:[[1045,776]],1027:[[1043,769]],1030:[,,{776:1031}],1031:[[1030,776]],1036:[[1050,769]],1037:[[1048,768]],1038:[[1059,774]],1040:[,,{774:1232,776:1234}],1043:[,,{769:1027}],1045:[,,{768:1024,774:1238,776:1025}],1046:[,,{774:1217,776:1244}],1047:[,,{776:1246}],1048:[,,{768:1037,772:1250,774:1049,776:1252}],1049:[[1048,774]],1050:[,,{769:1036}],1054:[,,{776:1254}],1059:[,,{772:1262,774:1038,776:1264,779:1266}],1063:[,,{776:1268}],1067:[,,{776:1272}],1069:[,,{776:1260}],1072:[,,{774:1233,776:1235}],1075:[,,{769:1107}],1077:[,,{768:1104,774:1239,776:1105}],1078:[,,{774:1218,776:1245}],1079:[,,{776:1247}],1080:[,,{768:1117,772:1251,774:1081,776:1253}],1081:[[1080,774]],1082:[,,{769:1116}],1086:[,,{776:1255}],1091:[,,{772:1263,774:1118,776:1265,779:1267}],1095:[,,{776:1269}],1099:[,,{776:1273}],1101:[,,{776:1261}],1104:[[1077,768]],1105:[[1077,776]],1107:[[1075,769]],1110:[,,{776:1111}],1111:[[1110,776]],1116:[[1082,769]],1117:[[1080,768]],1118:[[1091,774]],1140:[,,{783:1142}],1141:[,,{783:1143}],1142:[[1140,783]],1143:[[1141,783]],1155:[,230],1156:[,230],1157:[,230],1158:[,230],1159:[,230],1217:[[1046,774]],1218:[[1078,774]],1232:[[1040,774]],1233:[[1072,774]],1234:[[1040,776]],1235:[[1072,776]],1238:[[1045,774]],1239:[[1077,774]],1240:[,,{776:1242}],1241:[,,{776:1243}],1242:[[1240,776]],1243:[[1241,776]],1244:[[1046,776]],1245:[[1078,776]],1246:[[1047,776]],1247:[[1079,776]],1250:[[1048,772]],1251:[[1080,772]],1252:[[1048,776]],1253:[[1080,776]],1254:[[1054,776]],1255:[[1086,776]],1256:[,,{776:1258}],1257:[,,{776:1259}],1258:[[1256,776]],1259:[[1257,776]],1260:[[1069,776]],1261:[[1101,776]],1262:[[1059,772]],1263:[[1091,772]],1264:[[1059,776]],1265:[[1091,776]],1266:[[1059,779]],1267:[[1091,779]],1268:[[1063,776]],1269:[[1095,776]],1272:[[1067,776]],1273:[[1099,776]]},
+       1280:{1415:[[1381,1410],256],1425:[,220],1426:[,230],1427:[,230],1428:[,230],1429:[,230],1430:[,220],1431:[,230],1432:[,230],1433:[,230],1434:[,222],1435:[,220],1436:[,230],1437:[,230],1438:[,230],1439:[,230],1440:[,230],1441:[,230],1442:[,220],1443:[,220],1444:[,220],1445:[,220],1446:[,220],1447:[,220],1448:[,230],1449:[,230],1450:[,220],1451:[,230],1452:[,230],1453:[,222],1454:[,228],1455:[,230],1456:[,10],1457:[,11],1458:[,12],1459:[,13],1460:[,14],1461:[,15],1462:[,16],1463:[,17],1464:[,18],1465:[,19],1466:[,19],1467:[,20],1468:[,21],1469:[,22],1471:[,23],1473:[,24],1474:[,25],1476:[,230],1477:[,220],1479:[,18]},
+       1536:{1552:[,230],1553:[,230],1554:[,230],1555:[,230],1556:[,230],1557:[,230],1558:[,230],1559:[,230],1560:[,30],1561:[,31],1562:[,32],1570:[[1575,1619]],1571:[[1575,1620]],1572:[[1608,1620]],1573:[[1575,1621]],1574:[[1610,1620]],1575:[,,{1619:1570,1620:1571,1621:1573}],1608:[,,{1620:1572}],1610:[,,{1620:1574}],1611:[,27],1612:[,28],1613:[,29],1614:[,30],1615:[,31],1616:[,32],1617:[,33],1618:[,34],1619:[,230],1620:[,230],1621:[,220],1622:[,220],1623:[,230],1624:[,230],1625:[,230],1626:[,230],1627:[,230],1628:[,220],1629:[,230],1630:[,230],1631:[,220],1648:[,35],1653:[[1575,1652],256],1654:[[1608,1652],256],1655:[[1735,1652],256],1656:[[1610,1652],256],1728:[[1749,1620]],1729:[,,{1620:1730}],1730:[[1729,1620]],1746:[,,{1620:1747}],1747:[[1746,1620]],1749:[,,{1620:1728}],1750:[,230],1751:[,230],1752:[,230],1753:[,230],1754:[,230],1755:[,230],1756:[,230],1759:[,230],1760:[,230],1761:[,230],1762:[,230],1763:[,220],1764:[,230],1767:[,230],1768:[,230],1770:[,220],1771:[,230],1772:[,230],1773:[,220]},
+       1792:{1809:[,36],1840:[,230],1841:[,220],1842:[,230],1843:[,230],1844:[,220],1845:[,230],1846:[,230],1847:[,220],1848:[,220],1849:[,220],1850:[,230],1851:[,220],1852:[,220],1853:[,230],1854:[,220],1855:[,230],1856:[,230],1857:[,230],1858:[,220],1859:[,230],1860:[,220],1861:[,230],1862:[,220],1863:[,230],1864:[,220],1865:[,230],1866:[,230],2027:[,230],2028:[,230],2029:[,230],2030:[,230],2031:[,230],2032:[,230],2033:[,230],2034:[,220],2035:[,230]},
+       2048:{2070:[,230],2071:[,230],2072:[,230],2073:[,230],2075:[,230],2076:[,230],2077:[,230],2078:[,230],2079:[,230],2080:[,230],2081:[,230],2082:[,230],2083:[,230],2085:[,230],2086:[,230],2087:[,230],2089:[,230],2090:[,230],2091:[,230],2092:[,230],2093:[,230],2137:[,220],2138:[,220],2139:[,220],2276:[,230],2277:[,230],2278:[,220],2279:[,230],2280:[,230],2281:[,220],2282:[,230],2283:[,230],2284:[,230],2285:[,220],2286:[,220],2287:[,220],2288:[,27],2289:[,28],2290:[,29],2291:[,230],2292:[,230],2293:[,230],2294:[,220],2295:[,230],2296:[,230],2297:[,220],2298:[,220],2299:[,230],2300:[,230],2301:[,230],2302:[,230]},
+       2304:{2344:[,,{2364:2345}],2345:[[2344,2364]],2352:[,,{2364:2353}],2353:[[2352,2364]],2355:[,,{2364:2356}],2356:[[2355,2364]],2364:[,7],2381:[,9],2385:[,230],2386:[,220],2387:[,230],2388:[,230],2392:[[2325,2364],512],2393:[[2326,2364],512],2394:[[2327,2364],512],2395:[[2332,2364],512],2396:[[2337,2364],512],2397:[[2338,2364],512],2398:[[2347,2364],512],2399:[[2351,2364],512],2492:[,7],2503:[,,{2494:2507,2519:2508}],2507:[[2503,2494]],2508:[[2503,2519]],2509:[,9],2524:[[2465,2492],512],2525:[[2466,2492],512],2527:[[2479,2492],512]},
+       2560:{2611:[[2610,2620],512],2614:[[2616,2620],512],2620:[,7],2637:[,9],2649:[[2582,2620],512],2650:[[2583,2620],512],2651:[[2588,2620],512],2654:[[2603,2620],512],2748:[,7],2765:[,9],68109:[,220],68111:[,230],68152:[,230],68153:[,1],68154:[,220],68159:[,9]},
+       2816:{2876:[,7],2887:[,,{2878:2891,2902:2888,2903:2892}],2888:[[2887,2902]],2891:[[2887,2878]],2892:[[2887,2903]],2893:[,9],2908:[[2849,2876],512],2909:[[2850,2876],512],2962:[,,{3031:2964}],2964:[[2962,3031]],3014:[,,{3006:3018,3031:3020}],3015:[,,{3006:3019}],3018:[[3014,3006]],3019:[[3015,3006]],3020:[[3014,3031]],3021:[,9]},
+       3072:{3142:[,,{3158:3144}],3144:[[3142,3158]],3149:[,9],3157:[,84],3158:[,91],3260:[,7],3263:[,,{3285:3264}],3264:[[3263,3285]],3270:[,,{3266:3274,3285:3271,3286:3272}],3271:[[3270,3285]],3272:[[3270,3286]],3274:[[3270,3266],,{3285:3275}],3275:[[3274,3285]],3277:[,9]},
+       3328:{3398:[,,{3390:3402,3415:3404}],3399:[,,{3390:3403}],3402:[[3398,3390]],3403:[[3399,3390]],3404:[[3398,3415]],3405:[,9],3530:[,9],3545:[,,{3530:3546,3535:3548,3551:3550}],3546:[[3545,3530]],3548:[[3545,3535],,{3530:3549}],3549:[[3548,3530]],3550:[[3545,3551]]},
+       3584:{3635:[[3661,3634],256],3640:[,103],3641:[,103],3642:[,9],3656:[,107],3657:[,107],3658:[,107],3659:[,107],3763:[[3789,3762],256],3768:[,118],3769:[,118],3784:[,122],3785:[,122],3786:[,122],3787:[,122],3804:[[3755,3737],256],3805:[[3755,3745],256]},
+       3840:{3852:[[3851],256],3864:[,220],3865:[,220],3893:[,220],3895:[,220],3897:[,216],3907:[[3906,4023],512],3917:[[3916,4023],512],3922:[[3921,4023],512],3927:[[3926,4023],512],3932:[[3931,4023],512],3945:[[3904,4021],512],3953:[,129],3954:[,130],3955:[[3953,3954],512],3956:[,132],3957:[[3953,3956],512],3958:[[4018,3968],512],3959:[[4018,3969],256],3960:[[4019,3968],512],3961:[[4019,3969],256],3962:[,130],3963:[,130],3964:[,130],3965:[,130],3968:[,130],3969:[[3953,3968],512],3970:[,230],3971:[,230],3972:[,9],3974:[,230],3975:[,230],3987:[[3986,4023],512],3997:[[3996,4023],512],4002:[[4001,4023],512],4007:[[4006,4023],512],4012:[[4011,4023],512],4025:[[3984,4021],512],4038:[,220]},
+       4096:{4133:[,,{4142:4134}],4134:[[4133,4142]],4151:[,7],4153:[,9],4154:[,9],4237:[,220],4348:[[4316],256],69702:[,9],69785:[,,{69818:69786}],69786:[[69785,69818]],69787:[,,{69818:69788}],69788:[[69787,69818]],69797:[,,{69818:69803}],69803:[[69797,69818]],69817:[,9],69818:[,7]},
+       4352:{69888:[,230],69889:[,230],69890:[,230],69934:[[69937,69927]],69935:[[69938,69927]],69937:[,,{69927:69934}],69938:[,,{69927:69935}],69939:[,9],69940:[,9],70080:[,9]},
+       4864:{4957:[,230],4958:[,230],4959:[,230]},
+       5632:{71350:[,9],71351:[,7]},
+       5888:{5908:[,9],5940:[,9],6098:[,9],6109:[,230]},
+       6144:{6313:[,228]},
+       6400:{6457:[,222],6458:[,230],6459:[,220]},
+       6656:{6679:[,230],6680:[,220],6752:[,9],6773:[,230],6774:[,230],6775:[,230],6776:[,230],6777:[,230],6778:[,230],6779:[,230],6780:[,230],6783:[,220]},
+       6912:{6917:[,,{6965:6918}],6918:[[6917,6965]],6919:[,,{6965:6920}],6920:[[6919,6965]],6921:[,,{6965:6922}],6922:[[6921,6965]],6923:[,,{6965:6924}],6924:[[6923,6965]],6925:[,,{6965:6926}],6926:[[6925,6965]],6929:[,,{6965:6930}],6930:[[6929,6965]],6964:[,7],6970:[,,{6965:6971}],6971:[[6970,6965]],6972:[,,{6965:6973}],6973:[[6972,6965]],6974:[,,{6965:6976}],6975:[,,{6965:6977}],6976:[[6974,6965]],6977:[[6975,6965]],6978:[,,{6965:6979}],6979:[[6978,6965]],6980:[,9],7019:[,230],7020:[,220],7021:[,230],7022:[,230],7023:[,230],7024:[,230],7025:[,230],7026:[,230],7027:[,230],7082:[,9],7083:[,9],7142:[,7],7154:[,9],7155:[,9]},
+       7168:{7223:[,7],7376:[,230],7377:[,230],7378:[,230],7380:[,1],7381:[,220],7382:[,220],7383:[,220],7384:[,220],7385:[,220],7386:[,230],7387:[,230],7388:[,220],7389:[,220],7390:[,220],7391:[,220],7392:[,230],7394:[,1],7395:[,1],7396:[,1],7397:[,1],7398:[,1],7399:[,1],7400:[,1],7405:[,220],7412:[,230]},
+       7424:{7468:[[65],256],7469:[[198],256],7470:[[66],256],7472:[[68],256],7473:[[69],256],7474:[[398],256],7475:[[71],256],7476:[[72],256],7477:[[73],256],7478:[[74],256],7479:[[75],256],7480:[[76],256],7481:[[77],256],7482:[[78],256],7484:[[79],256],7485:[[546],256],7486:[[80],256],7487:[[82],256],7488:[[84],256],7489:[[85],256],7490:[[87],256],7491:[[97],256],7492:[[592],256],7493:[[593],256],7494:[[7426],256],7495:[[98],256],7496:[[100],256],7497:[[101],256],7498:[[601],256],7499:[[603],256],7500:[[604],256],7501:[[103],256],7503:[[107],256],7504:[[109],256],7505:[[331],256],7506:[[111],256],7507:[[596],256],7508:[[7446],256],7509:[[7447],256],7510:[[112],256],7511:[[116],256],7512:[[117],256],7513:[[7453],256],7514:[[623],256],7515:[[118],256],7516:[[7461],256],7517:[[946],256],7518:[[947],256],7519:[[948],256],7520:[[966],256],7521:[[967],256],7522:[[105],256],7523:[[114],256],7524:[[117],256],7525:[[118],256],7526:[[946],256],7527:[[947],256],7528:[[961],256],7529:[[966],256],7530:[[967],256],7544:[[1085],256],7579:[[594],256],7580:[[99],256],7581:[[597],256],7582:[[240],256],7583:[[604],256],7584:[[102],256],7585:[[607],256],7586:[[609],256],7587:[[613],256],7588:[[616],256],7589:[[617],256],7590:[[618],256],7591:[[7547],256],7592:[[669],256],7593:[[621],256],7594:[[7557],256],7595:[[671],256],7596:[[625],256],7597:[[624],256],7598:[[626],256],7599:[[627],256],7600:[[628],256],7601:[[629],256],7602:[[632],256],7603:[[642],256],7604:[[643],256],7605:[[427],256],7606:[[649],256],7607:[[650],256],7608:[[7452],256],7609:[[651],256],7610:[[652],256],7611:[[122],256],7612:[[656],256],7613:[[657],256],7614:[[658],256],7615:[[952],256],7616:[,230],7617:[,230],7618:[,220],7619:[,230],7620:[,230],7621:[,230],7622:[,230],7623:[,230],7624:[,230],7625:[,230],7626:[,220],7627:[,230],7628:[,230],7629:[,234],7630:[,214],7631:[,220],7632:[,202],7633:[,230],7634:[,230],7635:[,230],7636:[,230],7637:[,230],7638:[,230],7639:[,230],7640:[,230],7641:[,230],7642:[,230],7643:[,230],7644:[,230],7645:[,230],7646:[,230],7647:[,230],7648:[,230],7649:[,230],7650:[,230],7651:[,230],7652:[,230],7653:[,230],7654:[,230],7676:[,233],7677:[,220],7678:[,230],7679:[,220]},
+       7680:{7680:[[65,805]],7681:[[97,805]],7682:[[66,775]],7683:[[98,775]],7684:[[66,803]],7685:[[98,803]],7686:[[66,817]],7687:[[98,817]],7688:[[199,769]],7689:[[231,769]],7690:[[68,775]],7691:[[100,775]],7692:[[68,803]],7693:[[100,803]],7694:[[68,817]],7695:[[100,817]],7696:[[68,807]],7697:[[100,807]],7698:[[68,813]],7699:[[100,813]],7700:[[274,768]],7701:[[275,768]],7702:[[274,769]],7703:[[275,769]],7704:[[69,813]],7705:[[101,813]],7706:[[69,816]],7707:[[101,816]],7708:[[552,774]],7709:[[553,774]],7710:[[70,775]],7711:[[102,775]],7712:[[71,772]],7713:[[103,772]],7714:[[72,775]],7715:[[104,775]],7716:[[72,803]],7717:[[104,803]],7718:[[72,776]],7719:[[104,776]],7720:[[72,807]],7721:[[104,807]],7722:[[72,814]],7723:[[104,814]],7724:[[73,816]],7725:[[105,816]],7726:[[207,769]],7727:[[239,769]],7728:[[75,769]],7729:[[107,769]],7730:[[75,803]],7731:[[107,803]],7732:[[75,817]],7733:[[107,817]],7734:[[76,803],,{772:7736}],7735:[[108,803],,{772:7737}],7736:[[7734,772]],7737:[[7735,772]],7738:[[76,817]],7739:[[108,817]],7740:[[76,813]],7741:[[108,813]],7742:[[77,769]],7743:[[109,769]],7744:[[77,775]],7745:[[109,775]],7746:[[77,803]],7747:[[109,803]],7748:[[78,775]],7749:[[110,775]],7750:[[78,803]],7751:[[110,803]],7752:[[78,817]],7753:[[110,817]],7754:[[78,813]],7755:[[110,813]],7756:[[213,769]],7757:[[245,769]],7758:[[213,776]],7759:[[245,776]],7760:[[332,768]],7761:[[333,768]],7762:[[332,769]],7763:[[333,769]],7764:[[80,769]],7765:[[112,769]],7766:[[80,775]],7767:[[112,775]],7768:[[82,775]],7769:[[114,775]],7770:[[82,803],,{772:7772}],7771:[[114,803],,{772:7773}],7772:[[7770,772]],7773:[[7771,772]],7774:[[82,817]],7775:[[114,817]],7776:[[83,775]],7777:[[115,775]],7778:[[83,803],,{775:7784}],7779:[[115,803],,{775:7785}],7780:[[346,775]],7781:[[347,775]],7782:[[352,775]],7783:[[353,775]],7784:[[7778,775]],7785:[[7779,775]],7786:[[84,775]],7787:[[116,775]],7788:[[84,803]],7789:[[116,803]],7790:[[84,817]],7791:[[116,817]],7792:[[84,813]],7793:[[116,813]],7794:[[85,804]],7795:[[117,804]],7796:[[85,816]],7797:[[117,816]],7798:[[85,813]],7799:[[117,813]],7800:[[360,769]],7801:[[361,769]],7802:[[362,776]],7803:[[363,776]],7804:[[86,771]],7805:[[118,771]],7806:[[86,803]],7807:[[118,803]],7808:[[87,768]],7809:[[119,768]],7810:[[87,769]],7811:[[119,769]],7812:[[87,776]],7813:[[119,776]],7814:[[87,775]],7815:[[119,775]],7816:[[87,803]],7817:[[119,803]],7818:[[88,775]],7819:[[120,775]],7820:[[88,776]],7821:[[120,776]],7822:[[89,775]],7823:[[121,775]],7824:[[90,770]],7825:[[122,770]],7826:[[90,803]],7827:[[122,803]],7828:[[90,817]],7829:[[122,817]],7830:[[104,817]],7831:[[116,776]],7832:[[119,778]],7833:[[121,778]],7834:[[97,702],256],7835:[[383,775]],7840:[[65,803],,{770:7852,774:7862}],7841:[[97,803],,{770:7853,774:7863}],7842:[[65,777]],7843:[[97,777]],7844:[[194,769]],7845:[[226,769]],7846:[[194,768]],7847:[[226,768]],7848:[[194,777]],7849:[[226,777]],7850:[[194,771]],7851:[[226,771]],7852:[[7840,770]],7853:[[7841,770]],7854:[[258,769]],7855:[[259,769]],7856:[[258,768]],7857:[[259,768]],7858:[[258,777]],7859:[[259,777]],7860:[[258,771]],7861:[[259,771]],7862:[[7840,774]],7863:[[7841,774]],7864:[[69,803],,{770:7878}],7865:[[101,803],,{770:7879}],7866:[[69,777]],7867:[[101,777]],7868:[[69,771]],7869:[[101,771]],7870:[[202,769]],7871:[[234,769]],7872:[[202,768]],7873:[[234,768]],7874:[[202,777]],7875:[[234,777]],7876:[[202,771]],7877:[[234,771]],7878:[[7864,770]],7879:[[7865,770]],7880:[[73,777]],7881:[[105,777]],7882:[[73,803]],7883:[[105,803]],7884:[[79,803],,{770:7896}],7885:[[111,803],,{770:7897}],7886:[[79,777]],7887:[[111,777]],7888:[[212,769]],7889:[[244,769]],7890:[[212,768]],7891:[[244,768]],7892:[[212,777]],7893:[[244,777]],7894:[[212,771]],7895:[[244,771]],7896:[[7884,770]],7897:[[7885,770]],7898:[[416,769]],7899:[[417,769]],7900:[[416,768]],7901:[[417,768]],7902:[[416,777]],7903:[[417,777]],7904:[[416,771]],7905:[[417,771]],7906:[[416,803]],7907:[[417,803]],7908:[[85,803]],7909:[[117,803]],7910:[[85,777]],7911:[[117,777]],7912:[[431,769]],7913:[[432,769]],7914:[[431,768]],7915:[[432,768]],7916:[[431,777]],7917:[[432,777]],7918:[[431,771]],7919:[[432,771]],7920:[[431,803]],7921:[[432,803]],7922:[[89,768]],7923:[[121,768]],7924:[[89,803]],7925:[[121,803]],7926:[[89,777]],7927:[[121,777]],7928:[[89,771]],7929:[[121,771]]},
+       7936:{7936:[[945,787],,{768:7938,769:7940,834:7942,837:8064}],7937:[[945,788],,{768:7939,769:7941,834:7943,837:8065}],7938:[[7936,768],,{837:8066}],7939:[[7937,768],,{837:8067}],7940:[[7936,769],,{837:8068}],7941:[[7937,769],,{837:8069}],7942:[[7936,834],,{837:8070}],7943:[[7937,834],,{837:8071}],7944:[[913,787],,{768:7946,769:7948,834:7950,837:8072}],7945:[[913,788],,{768:7947,769:7949,834:7951,837:8073}],7946:[[7944,768],,{837:8074}],7947:[[7945,768],,{837:8075}],7948:[[7944,769],,{837:8076}],7949:[[7945,769],,{837:8077}],7950:[[7944,834],,{837:8078}],7951:[[7945,834],,{837:8079}],7952:[[949,787],,{768:7954,769:7956}],7953:[[949,788],,{768:7955,769:7957}],7954:[[7952,768]],7955:[[7953,768]],7956:[[7952,769]],7957:[[7953,769]],7960:[[917,787],,{768:7962,769:7964}],7961:[[917,788],,{768:7963,769:7965}],7962:[[7960,768]],7963:[[7961,768]],7964:[[7960,769]],7965:[[7961,769]],7968:[[951,787],,{768:7970,769:7972,834:7974,837:8080}],7969:[[951,788],,{768:7971,769:7973,834:7975,837:8081}],7970:[[7968,768],,{837:8082}],7971:[[7969,768],,{837:8083}],7972:[[7968,769],,{837:8084}],7973:[[7969,769],,{837:8085}],7974:[[7968,834],,{837:8086}],7975:[[7969,834],,{837:8087}],7976:[[919,787],,{768:7978,769:7980,834:7982,837:8088}],7977:[[919,788],,{768:7979,769:7981,834:7983,837:8089}],7978:[[7976,768],,{837:8090}],7979:[[7977,768],,{837:8091}],7980:[[7976,769],,{837:8092}],7981:[[7977,769],,{837:8093}],7982:[[7976,834],,{837:8094}],7983:[[7977,834],,{837:8095}],7984:[[953,787],,{768:7986,769:7988,834:7990}],7985:[[953,788],,{768:7987,769:7989,834:7991}],7986:[[7984,768]],7987:[[7985,768]],7988:[[7984,769]],7989:[[7985,769]],7990:[[7984,834]],7991:[[7985,834]],7992:[[921,787],,{768:7994,769:7996,834:7998}],7993:[[921,788],,{768:7995,769:7997,834:7999}],7994:[[7992,768]],7995:[[7993,768]],7996:[[7992,769]],7997:[[7993,769]],7998:[[7992,834]],7999:[[7993,834]],8000:[[959,787],,{768:8002,769:8004}],8001:[[959,788],,{768:8003,769:8005}],8002:[[8000,768]],8003:[[8001,768]],8004:[[8000,769]],8005:[[8001,769]],8008:[[927,787],,{768:8010,769:8012}],8009:[[927,788],,{768:8011,769:8013}],8010:[[8008,768]],8011:[[8009,768]],8012:[[8008,769]],8013:[[8009,769]],8016:[[965,787],,{768:8018,769:8020,834:8022}],8017:[[965,788],,{768:8019,769:8021,834:8023}],8018:[[8016,768]],8019:[[8017,768]],8020:[[8016,769]],8021:[[8017,769]],8022:[[8016,834]],8023:[[8017,834]],8025:[[933,788],,{768:8027,769:8029,834:8031}],8027:[[8025,768]],8029:[[8025,769]],8031:[[8025,834]],8032:[[969,787],,{768:8034,769:8036,834:8038,837:8096}],8033:[[969,788],,{768:8035,769:8037,834:8039,837:8097}],8034:[[8032,768],,{837:8098}],8035:[[8033,768],,{837:8099}],8036:[[8032,769],,{837:8100}],8037:[[8033,769],,{837:8101}],8038:[[8032,834],,{837:8102}],8039:[[8033,834],,{837:8103}],8040:[[937,787],,{768:8042,769:8044,834:8046,837:8104}],8041:[[937,788],,{768:8043,769:8045,834:8047,837:8105}],8042:[[8040,768],,{837:8106}],8043:[[8041,768],,{837:8107}],8044:[[8040,769],,{837:8108}],8045:[[8041,769],,{837:8109}],8046:[[8040,834],,{837:8110}],8047:[[8041,834],,{837:8111}],8048:[[945,768],,{837:8114}],8049:[[940]],8050:[[949,768]],8051:[[941]],8052:[[951,768],,{837:8130}],8053:[[942]],8054:[[953,768]],8055:[[943]],8056:[[959,768]],8057:[[972]],8058:[[965,768]],8059:[[973]],8060:[[969,768],,{837:8178}],8061:[[974]],8064:[[7936,837]],8065:[[7937,837]],8066:[[7938,837]],8067:[[7939,837]],8068:[[7940,837]],8069:[[7941,837]],8070:[[7942,837]],8071:[[7943,837]],8072:[[7944,837]],8073:[[7945,837]],8074:[[7946,837]],8075:[[7947,837]],8076:[[7948,837]],8077:[[7949,837]],8078:[[7950,837]],8079:[[7951,837]],8080:[[7968,837]],8081:[[7969,837]],8082:[[7970,837]],8083:[[7971,837]],8084:[[7972,837]],8085:[[7973,837]],8086:[[7974,837]],8087:[[7975,837]],8088:[[7976,837]],8089:[[7977,837]],8090:[[7978,837]],8091:[[7979,837]],8092:[[7980,837]],8093:[[7981,837]],8094:[[7982,837]],8095:[[7983,837]],8096:[[8032,837]],8097:[[8033,837]],8098:[[8034,837]],8099:[[8035,837]],8100:[[8036,837]],8101:[[8037,837]],8102:[[8038,837]],8103:[[8039,837]],8104:[[8040,837]],8105:[[8041,837]],8106:[[8042,837]],8107:[[8043,837]],8108:[[8044,837]],8109:[[8045,837]],8110:[[8046,837]],8111:[[8047,837]],8112:[[945,774]],8113:[[945,772]],8114:[[8048,837]],8115:[[945,837]],8116:[[940,837]],8118:[[945,834],,{837:8119}],8119:[[8118,837]],8120:[[913,774]],8121:[[913,772]],8122:[[913,768]],8123:[[902]],8124:[[913,837]],8125:[[32,787],256],8126:[[953]],8127:[[32,787],256,{768:8141,769:8142,834:8143}],8128:[[32,834],256],8129:[[168,834]],8130:[[8052,837]],8131:[[951,837]],8132:[[942,837]],8134:[[951,834],,{837:8135}],8135:[[8134,837]],8136:[[917,768]],8137:[[904]],8138:[[919,768]],8139:[[905]],8140:[[919,837]],8141:[[8127,768]],8142:[[8127,769]],8143:[[8127,834]],8144:[[953,774]],8145:[[953,772]],8146:[[970,768]],8147:[[912]],8150:[[953,834]],8151:[[970,834]],8152:[[921,774]],8153:[[921,772]],8154:[[921,768]],8155:[[906]],8157:[[8190,768]],8158:[[8190,769]],8159:[[8190,834]],8160:[[965,774]],8161:[[965,772]],8162:[[971,768]],8163:[[944]],8164:[[961,787]],8165:[[961,788]],8166:[[965,834]],8167:[[971,834]],8168:[[933,774]],8169:[[933,772]],8170:[[933,768]],8171:[[910]],8172:[[929,788]],8173:[[168,768]],8174:[[901]],8175:[[96]],8178:[[8060,837]],8179:[[969,837]],8180:[[974,837]],8182:[[969,834],,{837:8183}],8183:[[8182,837]],8184:[[927,768]],8185:[[908]],8186:[[937,768]],8187:[[911]],8188:[[937,837]],8189:[[180]],8190:[[32,788],256,{768:8157,769:8158,834:8159}]},
+       8192:{8192:[[8194]],8193:[[8195]],8194:[[32],256],8195:[[32],256],8196:[[32],256],8197:[[32],256],8198:[[32],256],8199:[[32],256],8200:[[32],256],8201:[[32],256],8202:[[32],256],8209:[[8208],256],8215:[[32,819],256],8228:[[46],256],8229:[[46,46],256],8230:[[46,46,46],256],8239:[[32],256],8243:[[8242,8242],256],8244:[[8242,8242,8242],256],8246:[[8245,8245],256],8247:[[8245,8245,8245],256],8252:[[33,33],256],8254:[[32,773],256],8263:[[63,63],256],8264:[[63,33],256],8265:[[33,63],256],8279:[[8242,8242,8242,8242],256],8287:[[32],256],8304:[[48],256],8305:[[105],256],8308:[[52],256],8309:[[53],256],8310:[[54],256],8311:[[55],256],8312:[[56],256],8313:[[57],256],8314:[[43],256],8315:[[8722],256],8316:[[61],256],8317:[[40],256],8318:[[41],256],8319:[[110],256],8320:[[48],256],8321:[[49],256],8322:[[50],256],8323:[[51],256],8324:[[52],256],8325:[[53],256],8326:[[54],256],8327:[[55],256],8328:[[56],256],8329:[[57],256],8330:[[43],256],8331:[[8722],256],8332:[[61],256],8333:[[40],256],8334:[[41],256],8336:[[97],256],8337:[[101],256],8338:[[111],256],8339:[[120],256],8340:[[601],256],8341:[[104],256],8342:[[107],256],8343:[[108],256],8344:[[109],256],8345:[[110],256],8346:[[112],256],8347:[[115],256],8348:[[116],256],8360:[[82,115],256],8400:[,230],8401:[,230],8402:[,1],8403:[,1],8404:[,230],8405:[,230],8406:[,230],8407:[,230],8408:[,1],8409:[,1],8410:[,1],8411:[,230],8412:[,230],8417:[,230],8421:[,1],8422:[,1],8423:[,230],8424:[,220],8425:[,230],8426:[,1],8427:[,1],8428:[,220],8429:[,220],8430:[,220],8431:[,220],8432:[,230]},
+       8448:{8448:[[97,47,99],256],8449:[[97,47,115],256],8450:[[67],256],8451:[[176,67],256],8453:[[99,47,111],256],8454:[[99,47,117],256],8455:[[400],256],8457:[[176,70],256],8458:[[103],256],8459:[[72],256],8460:[[72],256],8461:[[72],256],8462:[[104],256],8463:[[295],256],8464:[[73],256],8465:[[73],256],8466:[[76],256],8467:[[108],256],8469:[[78],256],8470:[[78,111],256],8473:[[80],256],8474:[[81],256],8475:[[82],256],8476:[[82],256],8477:[[82],256],8480:[[83,77],256],8481:[[84,69,76],256],8482:[[84,77],256],8484:[[90],256],8486:[[937]],8488:[[90],256],8490:[[75]],8491:[[197]],8492:[[66],256],8493:[[67],256],8495:[[101],256],8496:[[69],256],8497:[[70],256],8499:[[77],256],8500:[[111],256],8501:[[1488],256],8502:[[1489],256],8503:[[1490],256],8504:[[1491],256],8505:[[105],256],8507:[[70,65,88],256],8508:[[960],256],8509:[[947],256],8510:[[915],256],8511:[[928],256],8512:[[8721],256],8517:[[68],256],8518:[[100],256],8519:[[101],256],8520:[[105],256],8521:[[106],256],8528:[[49,8260,55],256],8529:[[49,8260,57],256],8530:[[49,8260,49,48],256],8531:[[49,8260,51],256],8532:[[50,8260,51],256],8533:[[49,8260,53],256],8534:[[50,8260,53],256],8535:[[51,8260,53],256],8536:[[52,8260,53],256],8537:[[49,8260,54],256],8538:[[53,8260,54],256],8539:[[49,8260,56],256],8540:[[51,8260,56],256],8541:[[53,8260,56],256],8542:[[55,8260,56],256],8543:[[49,8260],256],8544:[[73],256],8545:[[73,73],256],8546:[[73,73,73],256],8547:[[73,86],256],8548:[[86],256],8549:[[86,73],256],8550:[[86,73,73],256],8551:[[86,73,73,73],256],8552:[[73,88],256],8553:[[88],256],8554:[[88,73],256],8555:[[88,73,73],256],8556:[[76],256],8557:[[67],256],8558:[[68],256],8559:[[77],256],8560:[[105],256],8561:[[105,105],256],8562:[[105,105,105],256],8563:[[105,118],256],8564:[[118],256],8565:[[118,105],256],8566:[[118,105,105],256],8567:[[118,105,105,105],256],8568:[[105,120],256],8569:[[120],256],8570:[[120,105],256],8571:[[120,105,105],256],8572:[[108],256],8573:[[99],256],8574:[[100],256],8575:[[109],256],8585:[[48,8260,51],256],8592:[,,{824:8602}],8594:[,,{824:8603}],8596:[,,{824:8622}],8602:[[8592,824]],8603:[[8594,824]],8622:[[8596,824]],8653:[[8656,824]],8654:[[8660,824]],8655:[[8658,824]],8656:[,,{824:8653}],8658:[,,{824:8655}],8660:[,,{824:8654}]},
+       8704:{8707:[,,{824:8708}],8708:[[8707,824]],8712:[,,{824:8713}],8713:[[8712,824]],8715:[,,{824:8716}],8716:[[8715,824]],8739:[,,{824:8740}],8740:[[8739,824]],8741:[,,{824:8742}],8742:[[8741,824]],8748:[[8747,8747],256],8749:[[8747,8747,8747],256],8751:[[8750,8750],256],8752:[[8750,8750,8750],256],8764:[,,{824:8769}],8769:[[8764,824]],8771:[,,{824:8772}],8772:[[8771,824]],8773:[,,{824:8775}],8775:[[8773,824]],8776:[,,{824:8777}],8777:[[8776,824]],8781:[,,{824:8813}],8800:[[61,824]],8801:[,,{824:8802}],8802:[[8801,824]],8804:[,,{824:8816}],8805:[,,{824:8817}],8813:[[8781,824]],8814:[[60,824]],8815:[[62,824]],8816:[[8804,824]],8817:[[8805,824]],8818:[,,{824:8820}],8819:[,,{824:8821}],8820:[[8818,824]],8821:[[8819,824]],8822:[,,{824:8824}],8823:[,,{824:8825}],8824:[[8822,824]],8825:[[8823,824]],8826:[,,{824:8832}],8827:[,,{824:8833}],8828:[,,{824:8928}],8829:[,,{824:8929}],8832:[[8826,824]],8833:[[8827,824]],8834:[,,{824:8836}],8835:[,,{824:8837}],8836:[[8834,824]],8837:[[8835,824]],8838:[,,{824:8840}],8839:[,,{824:8841}],8840:[[8838,824]],8841:[[8839,824]],8849:[,,{824:8930}],8850:[,,{824:8931}],8866:[,,{824:8876}],8872:[,,{824:8877}],8873:[,,{824:8878}],8875:[,,{824:8879}],8876:[[8866,824]],8877:[[8872,824]],8878:[[8873,824]],8879:[[8875,824]],8882:[,,{824:8938}],8883:[,,{824:8939}],8884:[,,{824:8940}],8885:[,,{824:8941}],8928:[[8828,824]],8929:[[8829,824]],8930:[[8849,824]],8931:[[8850,824]],8938:[[8882,824]],8939:[[8883,824]],8940:[[8884,824]],8941:[[8885,824]]},
+       8960:{9001:[[12296]],9002:[[12297]]},
+       9216:{9312:[[49],256],9313:[[50],256],9314:[[51],256],9315:[[52],256],9316:[[53],256],9317:[[54],256],9318:[[55],256],9319:[[56],256],9320:[[57],256],9321:[[49,48],256],9322:[[49,49],256],9323:[[49,50],256],9324:[[49,51],256],9325:[[49,52],256],9326:[[49,53],256],9327:[[49,54],256],9328:[[49,55],256],9329:[[49,56],256],9330:[[49,57],256],9331:[[50,48],256],9332:[[40,49,41],256],9333:[[40,50,41],256],9334:[[40,51,41],256],9335:[[40,52,41],256],9336:[[40,53,41],256],9337:[[40,54,41],256],9338:[[40,55,41],256],9339:[[40,56,41],256],9340:[[40,57,41],256],9341:[[40,49,48,41],256],9342:[[40,49,49,41],256],9343:[[40,49,50,41],256],9344:[[40,49,51,41],256],9345:[[40,49,52,41],256],9346:[[40,49,53,41],256],9347:[[40,49,54,41],256],9348:[[40,49,55,41],256],9349:[[40,49,56,41],256],9350:[[40,49,57,41],256],9351:[[40,50,48,41],256],9352:[[49,46],256],9353:[[50,46],256],9354:[[51,46],256],9355:[[52,46],256],9356:[[53,46],256],9357:[[54,46],256],9358:[[55,46],256],9359:[[56,46],256],9360:[[57,46],256],9361:[[49,48,46],256],9362:[[49,49,46],256],9363:[[49,50,46],256],9364:[[49,51,46],256],9365:[[49,52,46],256],9366:[[49,53,46],256],9367:[[49,54,46],256],9368:[[49,55,46],256],9369:[[49,56,46],256],9370:[[49,57,46],256],9371:[[50,48,46],256],9372:[[40,97,41],256],9373:[[40,98,41],256],9374:[[40,99,41],256],9375:[[40,100,41],256],9376:[[40,101,41],256],9377:[[40,102,41],256],9378:[[40,103,41],256],9379:[[40,104,41],256],9380:[[40,105,41],256],9381:[[40,106,41],256],9382:[[40,107,41],256],9383:[[40,108,41],256],9384:[[40,109,41],256],9385:[[40,110,41],256],9386:[[40,111,41],256],9387:[[40,112,41],256],9388:[[40,113,41],256],9389:[[40,114,41],256],9390:[[40,115,41],256],9391:[[40,116,41],256],9392:[[40,117,41],256],9393:[[40,118,41],256],9394:[[40,119,41],256],9395:[[40,120,41],256],9396:[[40,121,41],256],9397:[[40,122,41],256],9398:[[65],256],9399:[[66],256],9400:[[67],256],9401:[[68],256],9402:[[69],256],9403:[[70],256],9404:[[71],256],9405:[[72],256],9406:[[73],256],9407:[[74],256],9408:[[75],256],9409:[[76],256],9410:[[77],256],9411:[[78],256],9412:[[79],256],9413:[[80],256],9414:[[81],256],9415:[[82],256],9416:[[83],256],9417:[[84],256],9418:[[85],256],9419:[[86],256],9420:[[87],256],9421:[[88],256],9422:[[89],256],9423:[[90],256],9424:[[97],256],9425:[[98],256],9426:[[99],256],9427:[[100],256],9428:[[101],256],9429:[[102],256],9430:[[103],256],9431:[[104],256],9432:[[105],256],9433:[[106],256],9434:[[107],256],9435:[[108],256],9436:[[109],256],9437:[[110],256],9438:[[111],256],9439:[[112],256],9440:[[113],256],9441:[[114],256],9442:[[115],256],9443:[[116],256],9444:[[117],256],9445:[[118],256],9446:[[119],256],9447:[[120],256],9448:[[121],256],9449:[[122],256],9450:[[48],256]},
+       10752:{10764:[[8747,8747,8747,8747],256],10868:[[58,58,61],256],10869:[[61,61],256],10870:[[61,61,61],256],10972:[[10973,824],512]},
+       11264:{11388:[[106],256],11389:[[86],256],11503:[,230],11504:[,230],11505:[,230]},
+       11520:{11631:[[11617],256],11647:[,9],11744:[,230],11745:[,230],11746:[,230],11747:[,230],11748:[,230],11749:[,230],11750:[,230],11751:[,230],11752:[,230],11753:[,230],11754:[,230],11755:[,230],11756:[,230],11757:[,230],11758:[,230],11759:[,230],11760:[,230],11761:[,230],11762:[,230],11763:[,230],11764:[,230],11765:[,230],11766:[,230],11767:[,230],11768:[,230],11769:[,230],11770:[,230],11771:[,230],11772:[,230],11773:[,230],11774:[,230],11775:[,230]},
+       11776:{11935:[[27597],256],12019:[[40863],256]},
+       12032:{12032:[[19968],256],12033:[[20008],256],12034:[[20022],256],12035:[[20031],256],12036:[[20057],256],12037:[[20101],256],12038:[[20108],256],12039:[[20128],256],12040:[[20154],256],12041:[[20799],256],12042:[[20837],256],12043:[[20843],256],12044:[[20866],256],12045:[[20886],256],12046:[[20907],256],12047:[[20960],256],12048:[[20981],256],12049:[[20992],256],12050:[[21147],256],12051:[[21241],256],12052:[[21269],256],12053:[[21274],256],12054:[[21304],256],12055:[[21313],256],12056:[[21340],256],12057:[[21353],256],12058:[[21378],256],12059:[[21430],256],12060:[[21448],256],12061:[[21475],256],12062:[[22231],256],12063:[[22303],256],12064:[[22763],256],12065:[[22786],256],12066:[[22794],256],12067:[[22805],256],12068:[[22823],256],12069:[[22899],256],12070:[[23376],256],12071:[[23424],256],12072:[[23544],256],12073:[[23567],256],12074:[[23586],256],12075:[[23608],256],12076:[[23662],256],12077:[[23665],256],12078:[[24027],256],12079:[[24037],256],12080:[[24049],256],12081:[[24062],256],12082:[[24178],256],12083:[[24186],256],12084:[[24191],256],12085:[[24308],256],12086:[[24318],256],12087:[[24331],256],12088:[[24339],256],12089:[[24400],256],12090:[[24417],256],12091:[[24435],256],12092:[[24515],256],12093:[[25096],256],12094:[[25142],256],12095:[[25163],256],12096:[[25903],256],12097:[[25908],256],12098:[[25991],256],12099:[[26007],256],12100:[[26020],256],12101:[[26041],256],12102:[[26080],256],12103:[[26085],256],12104:[[26352],256],12105:[[26376],256],12106:[[26408],256],12107:[[27424],256],12108:[[27490],256],12109:[[27513],256],12110:[[27571],256],12111:[[27595],256],12112:[[27604],256],12113:[[27611],256],12114:[[27663],256],12115:[[27668],256],12116:[[27700],256],12117:[[28779],256],12118:[[29226],256],12119:[[29238],256],12120:[[29243],256],12121:[[29247],256],12122:[[29255],256],12123:[[29273],256],12124:[[29275],256],12125:[[29356],256],12126:[[29572],256],12127:[[29577],256],12128:[[29916],256],12129:[[29926],256],12130:[[29976],256],12131:[[29983],256],12132:[[29992],256],12133:[[30000],256],12134:[[30091],256],12135:[[30098],256],12136:[[30326],256],12137:[[30333],256],12138:[[30382],256],12139:[[30399],256],12140:[[30446],256],12141:[[30683],256],12142:[[30690],256],12143:[[30707],256],12144:[[31034],256],12145:[[31160],256],12146:[[31166],256],12147:[[31348],256],12148:[[31435],256],12149:[[31481],256],12150:[[31859],256],12151:[[31992],256],12152:[[32566],256],12153:[[32593],256],12154:[[32650],256],12155:[[32701],256],12156:[[32769],256],12157:[[32780],256],12158:[[32786],256],12159:[[32819],256],12160:[[32895],256],12161:[[32905],256],12162:[[33251],256],12163:[[33258],256],12164:[[33267],256],12165:[[33276],256],12166:[[33292],256],12167:[[33307],256],12168:[[33311],256],12169:[[33390],256],12170:[[33394],256],12171:[[33400],256],12172:[[34381],256],12173:[[34411],256],12174:[[34880],256],12175:[[34892],256],12176:[[34915],256],12177:[[35198],256],12178:[[35211],256],12179:[[35282],256],12180:[[35328],256],12181:[[35895],256],12182:[[35910],256],12183:[[35925],256],12184:[[35960],256],12185:[[35997],256],12186:[[36196],256],12187:[[36208],256],12188:[[36275],256],12189:[[36523],256],12190:[[36554],256],12191:[[36763],256],12192:[[36784],256],12193:[[36789],256],12194:[[37009],256],12195:[[37193],256],12196:[[37318],256],12197:[[37324],256],12198:[[37329],256],12199:[[38263],256],12200:[[38272],256],12201:[[38428],256],12202:[[38582],256],12203:[[38585],256],12204:[[38632],256],12205:[[38737],256],12206:[[38750],256],12207:[[38754],256],12208:[[38761],256],12209:[[38859],256],12210:[[38893],256],12211:[[38899],256],12212:[[38913],256],12213:[[39080],256],12214:[[39131],256],12215:[[39135],256],12216:[[39318],256],12217:[[39321],256],12218:[[39340],256],12219:[[39592],256],12220:[[39640],256],12221:[[39647],256],12222:[[39717],256],12223:[[39727],256],12224:[[39730],256],12225:[[39740],256],12226:[[39770],256],12227:[[40165],256],12228:[[40565],256],12229:[[40575],256],12230:[[40613],256],12231:[[40635],256],12232:[[40643],256],12233:[[40653],256],12234:[[40657],256],12235:[[40697],256],12236:[[40701],256],12237:[[40718],256],12238:[[40723],256],12239:[[40736],256],12240:[[40763],256],12241:[[40778],256],12242:[[40786],256],12243:[[40845],256],12244:[[40860],256],12245:[[40864],256]},
+       12288:{12288:[[32],256],12330:[,218],12331:[,228],12332:[,232],12333:[,222],12334:[,224],12335:[,224],12342:[[12306],256],12344:[[21313],256],12345:[[21316],256],12346:[[21317],256],12358:[,,{12441:12436}],12363:[,,{12441:12364}],12364:[[12363,12441]],12365:[,,{12441:12366}],12366:[[12365,12441]],12367:[,,{12441:12368}],12368:[[12367,12441]],12369:[,,{12441:12370}],12370:[[12369,12441]],12371:[,,{12441:12372}],12372:[[12371,12441]],12373:[,,{12441:12374}],12374:[[12373,12441]],12375:[,,{12441:12376}],12376:[[12375,12441]],12377:[,,{12441:12378}],12378:[[12377,12441]],12379:[,,{12441:12380}],12380:[[12379,12441]],12381:[,,{12441:12382}],12382:[[12381,12441]],12383:[,,{12441:12384}],12384:[[12383,12441]],12385:[,,{12441:12386}],12386:[[12385,12441]],12388:[,,{12441:12389}],12389:[[12388,12441]],12390:[,,{12441:12391}],12391:[[12390,12441]],12392:[,,{12441:12393}],12393:[[12392,12441]],12399:[,,{12441:12400,12442:12401}],12400:[[12399,12441]],12401:[[12399,12442]],12402:[,,{12441:12403,12442:12404}],12403:[[12402,12441]],12404:[[12402,12442]],12405:[,,{12441:12406,12442:12407}],12406:[[12405,12441]],12407:[[12405,12442]],12408:[,,{12441:12409,12442:12410}],12409:[[12408,12441]],12410:[[12408,12442]],12411:[,,{12441:12412,12442:12413}],12412:[[12411,12441]],12413:[[12411,12442]],12436:[[12358,12441]],12441:[,8],12442:[,8],12443:[[32,12441],256],12444:[[32,12442],256],12445:[,,{12441:12446}],12446:[[12445,12441]],12447:[[12424,12426],256],12454:[,,{12441:12532}],12459:[,,{12441:12460}],12460:[[12459,12441]],12461:[,,{12441:12462}],12462:[[12461,12441]],12463:[,,{12441:12464}],12464:[[12463,12441]],12465:[,,{12441:12466}],12466:[[12465,12441]],12467:[,,{12441:12468}],12468:[[12467,12441]],12469:[,,{12441:12470}],12470:[[12469,12441]],12471:[,,{12441:12472}],12472:[[12471,12441]],12473:[,,{12441:12474}],12474:[[12473,12441]],12475:[,,{12441:12476}],12476:[[12475,12441]],12477:[,,{12441:12478}],12478:[[12477,12441]],12479:[,,{12441:12480}],12480:[[12479,12441]],12481:[,,{12441:12482}],12482:[[12481,12441]],12484:[,,{12441:12485}],12485:[[12484,12441]],12486:[,,{12441:12487}],12487:[[12486,12441]],12488:[,,{12441:12489}],12489:[[12488,12441]],12495:[,,{12441:12496,12442:12497}],12496:[[12495,12441]],12497:[[12495,12442]],12498:[,,{12441:12499,12442:12500}],12499:[[12498,12441]],12500:[[12498,12442]],12501:[,,{12441:12502,12442:12503}],12502:[[12501,12441]],12503:[[12501,12442]],12504:[,,{12441:12505,12442:12506}],12505:[[12504,12441]],12506:[[12504,12442]],12507:[,,{12441:12508,12442:12509}],12508:[[12507,12441]],12509:[[12507,12442]],12527:[,,{12441:12535}],12528:[,,{12441:12536}],12529:[,,{12441:12537}],12530:[,,{12441:12538}],12532:[[12454,12441]],12535:[[12527,12441]],12536:[[12528,12441]],12537:[[12529,12441]],12538:[[12530,12441]],12541:[,,{12441:12542}],12542:[[12541,12441]],12543:[[12467,12488],256]},
+       12544:{12593:[[4352],256],12594:[[4353],256],12595:[[4522],256],12596:[[4354],256],12597:[[4524],256],12598:[[4525],256],12599:[[4355],256],12600:[[4356],256],12601:[[4357],256],12602:[[4528],256],12603:[[4529],256],12604:[[4530],256],12605:[[4531],256],12606:[[4532],256],12607:[[4533],256],12608:[[4378],256],12609:[[4358],256],12610:[[4359],256],12611:[[4360],256],12612:[[4385],256],12613:[[4361],256],12614:[[4362],256],12615:[[4363],256],12616:[[4364],256],12617:[[4365],256],12618:[[4366],256],12619:[[4367],256],12620:[[4368],256],12621:[[4369],256],12622:[[4370],256],12623:[[4449],256],12624:[[4450],256],12625:[[4451],256],12626:[[4452],256],12627:[[4453],256],12628:[[4454],256],12629:[[4455],256],12630:[[4456],256],12631:[[4457],256],12632:[[4458],256],12633:[[4459],256],12634:[[4460],256],12635:[[4461],256],12636:[[4462],256],12637:[[4463],256],12638:[[4464],256],12639:[[4465],256],12640:[[4466],256],12641:[[4467],256],12642:[[4468],256],12643:[[4469],256],12644:[[4448],256],12645:[[4372],256],12646:[[4373],256],12647:[[4551],256],12648:[[4552],256],12649:[[4556],256],12650:[[4558],256],12651:[[4563],256],12652:[[4567],256],12653:[[4569],256],12654:[[4380],256],12655:[[4573],256],12656:[[4575],256],12657:[[4381],256],12658:[[4382],256],12659:[[4384],256],12660:[[4386],256],12661:[[4387],256],12662:[[4391],256],12663:[[4393],256],12664:[[4395],256],12665:[[4396],256],12666:[[4397],256],12667:[[4398],256],12668:[[4399],256],12669:[[4402],256],12670:[[4406],256],12671:[[4416],256],12672:[[4423],256],12673:[[4428],256],12674:[[4593],256],12675:[[4594],256],12676:[[4439],256],12677:[[4440],256],12678:[[4441],256],12679:[[4484],256],12680:[[4485],256],12681:[[4488],256],12682:[[4497],256],12683:[[4498],256],12684:[[4500],256],12685:[[4510],256],12686:[[4513],256],12690:[[19968],256],12691:[[20108],256],12692:[[19977],256],12693:[[22235],256],12694:[[19978],256],12695:[[20013],256],12696:[[19979],256],12697:[[30002],256],12698:[[20057],256],12699:[[19993],256],12700:[[19969],256],12701:[[22825],256],12702:[[22320],256],12703:[[20154],256]},
+       12800:{12800:[[40,4352,41],256],12801:[[40,4354,41],256],12802:[[40,4355,41],256],12803:[[40,4357,41],256],12804:[[40,4358,41],256],12805:[[40,4359,41],256],12806:[[40,4361,41],256],12807:[[40,4363,41],256],12808:[[40,4364,41],256],12809:[[40,4366,41],256],12810:[[40,4367,41],256],12811:[[40,4368,41],256],12812:[[40,4369,41],256],12813:[[40,4370,41],256],12814:[[40,4352,4449,41],256],12815:[[40,4354,4449,41],256],12816:[[40,4355,4449,41],256],12817:[[40,4357,4449,41],256],12818:[[40,4358,4449,41],256],12819:[[40,4359,4449,41],256],12820:[[40,4361,4449,41],256],12821:[[40,4363,4449,41],256],12822:[[40,4364,4449,41],256],12823:[[40,4366,4449,41],256],12824:[[40,4367,4449,41],256],12825:[[40,4368,4449,41],256],12826:[[40,4369,4449,41],256],12827:[[40,4370,4449,41],256],12828:[[40,4364,4462,41],256],12829:[[40,4363,4457,4364,4453,4523,41],256],12830:[[40,4363,4457,4370,4462,41],256],12832:[[40,19968,41],256],12833:[[40,20108,41],256],12834:[[40,19977,41],256],12835:[[40,22235,41],256],12836:[[40,20116,41],256],12837:[[40,20845,41],256],12838:[[40,19971,41],256],12839:[[40,20843,41],256],12840:[[40,20061,41],256],12841:[[40,21313,41],256],12842:[[40,26376,41],256],12843:[[40,28779,41],256],12844:[[40,27700,41],256],12845:[[40,26408,41],256],12846:[[40,37329,41],256],12847:[[40,22303,41],256],12848:[[40,26085,41],256],12849:[[40,26666,41],256],12850:[[40,26377,41],256],12851:[[40,31038,41],256],12852:[[40,21517,41],256],12853:[[40,29305,41],256],12854:[[40,36001,41],256],12855:[[40,31069,41],256],12856:[[40,21172,41],256],12857:[[40,20195,41],256],12858:[[40,21628,41],256],12859:[[40,23398,41],256],12860:[[40,30435,41],256],12861:[[40,20225,41],256],12862:[[40,36039,41],256],12863:[[40,21332,41],256],12864:[[40,31085,41],256],12865:[[40,20241,41],256],12866:[[40,33258,41],256],12867:[[40,33267,41],256],12868:[[21839],256],12869:[[24188],256],12870:[[25991],256],12871:[[31631],256],12880:[[80,84,69],256],12881:[[50,49],256],12882:[[50,50],256],12883:[[50,51],256],12884:[[50,52],256],12885:[[50,53],256],12886:[[50,54],256],12887:[[50,55],256],12888:[[50,56],256],12889:[[50,57],256],12890:[[51,48],256],12891:[[51,49],256],12892:[[51,50],256],12893:[[51,51],256],12894:[[51,52],256],12895:[[51,53],256],12896:[[4352],256],12897:[[4354],256],12898:[[4355],256],12899:[[4357],256],12900:[[4358],256],12901:[[4359],256],12902:[[4361],256],12903:[[4363],256],12904:[[4364],256],12905:[[4366],256],12906:[[4367],256],12907:[[4368],256],12908:[[4369],256],12909:[[4370],256],12910:[[4352,4449],256],12911:[[4354,4449],256],12912:[[4355,4449],256],12913:[[4357,4449],256],12914:[[4358,4449],256],12915:[[4359,4449],256],12916:[[4361,4449],256],12917:[[4363,4449],256],12918:[[4364,4449],256],12919:[[4366,4449],256],12920:[[4367,4449],256],12921:[[4368,4449],256],12922:[[4369,4449],256],12923:[[4370,4449],256],12924:[[4366,4449,4535,4352,4457],256],12925:[[4364,4462,4363,4468],256],12926:[[4363,4462],256],12928:[[19968],256],12929:[[20108],256],12930:[[19977],256],12931:[[22235],256],12932:[[20116],256],12933:[[20845],256],12934:[[19971],256],12935:[[20843],256],12936:[[20061],256],12937:[[21313],256],12938:[[26376],256],12939:[[28779],256],12940:[[27700],256],12941:[[26408],256],12942:[[37329],256],12943:[[22303],256],12944:[[26085],256],12945:[[26666],256],12946:[[26377],256],12947:[[31038],256],12948:[[21517],256],12949:[[29305],256],12950:[[36001],256],12951:[[31069],256],12952:[[21172],256],12953:[[31192],256],12954:[[30007],256],12955:[[22899],256],12956:[[36969],256],12957:[[20778],256],12958:[[21360],256],12959:[[27880],256],12960:[[38917],256],12961:[[20241],256],12962:[[20889],256],12963:[[27491],256],12964:[[19978],256],12965:[[20013],256],12966:[[19979],256],12967:[[24038],256],12968:[[21491],256],12969:[[21307],256],12970:[[23447],256],12971:[[23398],256],12972:[[30435],256],12973:[[20225],256],12974:[[36039],256],12975:[[21332],256],12976:[[22812],256],12977:[[51,54],256],12978:[[51,55],256],12979:[[51,56],256],12980:[[51,57],256],12981:[[52,48],256],12982:[[52,49],256],12983:[[52,50],256],12984:[[52,51],256],12985:[[52,52],256],12986:[[52,53],256],12987:[[52,54],256],12988:[[52,55],256],12989:[[52,56],256],12990:[[52,57],256],12991:[[53,48],256],12992:[[49,26376],256],12993:[[50,26376],256],12994:[[51,26376],256],12995:[[52,26376],256],12996:[[53,26376],256],12997:[[54,26376],256],12998:[[55,26376],256],12999:[[56,26376],256],13000:[[57,26376],256],13001:[[49,48,26376],256],13002:[[49,49,26376],256],13003:[[49,50,26376],256],13004:[[72,103],256],13005:[[101,114,103],256],13006:[[101,86],256],13007:[[76,84,68],256],13008:[[12450],256],13009:[[12452],256],13010:[[12454],256],13011:[[12456],256],13012:[[12458],256],13013:[[12459],256],13014:[[12461],256],13015:[[12463],256],13016:[[12465],256],13017:[[12467],256],13018:[[12469],256],13019:[[12471],256],13020:[[12473],256],13021:[[12475],256],13022:[[12477],256],13023:[[12479],256],13024:[[12481],256],13025:[[12484],256],13026:[[12486],256],13027:[[12488],256],13028:[[12490],256],13029:[[12491],256],13030:[[12492],256],13031:[[12493],256],13032:[[12494],256],13033:[[12495],256],13034:[[12498],256],13035:[[12501],256],13036:[[12504],256],13037:[[12507],256],13038:[[12510],256],13039:[[12511],256],13040:[[12512],256],13041:[[12513],256],13042:[[12514],256],13043:[[12516],256],13044:[[12518],256],13045:[[12520],256],13046:[[12521],256],13047:[[12522],256],13048:[[12523],256],13049:[[12524],256],13050:[[12525],256],13051:[[12527],256],13052:[[12528],256],13053:[[12529],256],13054:[[12530],256]},
+       13056:{13056:[[12450,12497,12540,12488],256],13057:[[12450,12523,12501,12449],256],13058:[[12450,12531,12506,12450],256],13059:[[12450,12540,12523],256],13060:[[12452,12491,12531,12464],256],13061:[[12452,12531,12481],256],13062:[[12454,12457,12531],256],13063:[[12456,12473,12463,12540,12489],256],13064:[[12456,12540,12459,12540],256],13065:[[12458,12531,12473],256],13066:[[12458,12540,12512],256],13067:[[12459,12452,12522],256],13068:[[12459,12521,12483,12488],256],13069:[[12459,12525,12522,12540],256],13070:[[12460,12525,12531],256],13071:[[12460,12531,12510],256],13072:[[12462,12460],256],13073:[[12462,12491,12540],256],13074:[[12461,12517,12522,12540],256],13075:[[12462,12523,12480,12540],256],13076:[[12461,12525],256],13077:[[12461,12525,12464,12521,12512],256],13078:[[12461,12525,12513,12540,12488,12523],256],13079:[[12461,12525,12527,12483,12488],256],13080:[[12464,12521,12512],256],13081:[[12464,12521,12512,12488,12531],256],13082:[[12463,12523,12476,12452,12525],256],13083:[[12463,12525,12540,12493],256],13084:[[12465,12540,12473],256],13085:[[12467,12523,12490],256],13086:[[12467,12540,12509],256],13087:[[12469,12452,12463,12523],256],13088:[[12469,12531,12481,12540,12512],256],13089:[[12471,12522,12531,12464],256],13090:[[12475,12531,12481],256],13091:[[12475,12531,12488],256],13092:[[12480,12540,12473],256],13093:[[12487,12471],256],13094:[[12489,12523],256],13095:[[12488,12531],256],13096:[[12490,12494],256],13097:[[12494,12483,12488],256],13098:[[12495,12452,12484],256],13099:[[12497,12540,12475,12531,12488],256],13100:[[12497,12540,12484],256],13101:[[12496,12540,12524,12523],256],13102:[[12500,12450,12473,12488,12523],256],13103:[[12500,12463,12523],256],13104:[[12500,12467],256],13105:[[12499,12523],256],13106:[[12501,12449,12521,12483,12489],256],13107:[[12501,12451,12540,12488],256],13108:[[12502,12483,12471,12455,12523],256],13109:[[12501,12521,12531],256],13110:[[12504,12463,12479,12540,12523],256],13111:[[12506,12477],256],13112:[[12506,12491,12498],256],13113:[[12504,12523,12484],256],13114:[[12506,12531,12473],256],13115:[[12506,12540,12472],256],13116:[[12505,12540,12479],256],13117:[[12509,12452,12531,12488],256],13118:[[12508,12523,12488],256],13119:[[12507,12531],256],13120:[[12509,12531,12489],256],13121:[[12507,12540,12523],256],13122:[[12507,12540,12531],256],13123:[[12510,12452,12463,12525],256],13124:[[12510,12452,12523],256],13125:[[12510,12483,12495],256],13126:[[12510,12523,12463],256],13127:[[12510,12531,12471,12519,12531],256],13128:[[12511,12463,12525,12531],256],13129:[[12511,12522],256],13130:[[12511,12522,12496,12540,12523],256],13131:[[12513,12460],256],13132:[[12513,12460,12488,12531],256],13133:[[12513,12540,12488,12523],256],13134:[[12516,12540,12489],256],13135:[[12516,12540,12523],256],13136:[[12518,12450,12531],256],13137:[[12522,12483,12488,12523],256],13138:[[12522,12521],256],13139:[[12523,12500,12540],256],13140:[[12523,12540,12502,12523],256],13141:[[12524,12512],256],13142:[[12524,12531,12488,12466,12531],256],13143:[[12527,12483,12488],256],13144:[[48,28857],256],13145:[[49,28857],256],13146:[[50,28857],256],13147:[[51,28857],256],13148:[[52,28857],256],13149:[[53,28857],256],13150:[[54,28857],256],13151:[[55,28857],256],13152:[[56,28857],256],13153:[[57,28857],256],13154:[[49,48,28857],256],13155:[[49,49,28857],256],13156:[[49,50,28857],256],13157:[[49,51,28857],256],13158:[[49,52,28857],256],13159:[[49,53,28857],256],13160:[[49,54,28857],256],13161:[[49,55,28857],256],13162:[[49,56,28857],256],13163:[[49,57,28857],256],13164:[[50,48,28857],256],13165:[[50,49,28857],256],13166:[[50,50,28857],256],13167:[[50,51,28857],256],13168:[[50,52,28857],256],13169:[[104,80,97],256],13170:[[100,97],256],13171:[[65,85],256],13172:[[98,97,114],256],13173:[[111,86],256],13174:[[112,99],256],13175:[[100,109],256],13176:[[100,109,178],256],13177:[[100,109,179],256],13178:[[73,85],256],13179:[[24179,25104],256],13180:[[26157,21644],256],13181:[[22823,27491],256],13182:[[26126,27835],256],13183:[[26666,24335,20250,31038],256],13184:[[112,65],256],13185:[[110,65],256],13186:[[956,65],256],13187:[[109,65],256],13188:[[107,65],256],13189:[[75,66],256],13190:[[77,66],256],13191:[[71,66],256],13192:[[99,97,108],256],13193:[[107,99,97,108],256],13194:[[112,70],256],13195:[[110,70],256],13196:[[956,70],256],13197:[[956,103],256],13198:[[109,103],256],13199:[[107,103],256],13200:[[72,122],256],13201:[[107,72,122],256],13202:[[77,72,122],256],13203:[[71,72,122],256],13204:[[84,72,122],256],13205:[[956,8467],256],13206:[[109,8467],256],13207:[[100,8467],256],13208:[[107,8467],256],13209:[[102,109],256],13210:[[110,109],256],13211:[[956,109],256],13212:[[109,109],256],13213:[[99,109],256],13214:[[107,109],256],13215:[[109,109,178],256],13216:[[99,109,178],256],13217:[[109,178],256],13218:[[107,109,178],256],13219:[[109,109,179],256],13220:[[99,109,179],256],13221:[[109,179],256],13222:[[107,109,179],256],13223:[[109,8725,115],256],13224:[[109,8725,115,178],256],13225:[[80,97],256],13226:[[107,80,97],256],13227:[[77,80,97],256],13228:[[71,80,97],256],13229:[[114,97,100],256],13230:[[114,97,100,8725,115],256],13231:[[114,97,100,8725,115,178],256],13232:[[112,115],256],13233:[[110,115],256],13234:[[956,115],256],13235:[[109,115],256],13236:[[112,86],256],13237:[[110,86],256],13238:[[956,86],256],13239:[[109,86],256],13240:[[107,86],256],13241:[[77,86],256],13242:[[112,87],256],13243:[[110,87],256],13244:[[956,87],256],13245:[[109,87],256],13246:[[107,87],256],13247:[[77,87],256],13248:[[107,937],256],13249:[[77,937],256],13250:[[97,46,109,46],256],13251:[[66,113],256],13252:[[99,99],256],13253:[[99,100],256],13254:[[67,8725,107,103],256],13255:[[67,111,46],256],13256:[[100,66],256],13257:[[71,121],256],13258:[[104,97],256],13259:[[72,80],256],13260:[[105,110],256],13261:[[75,75],256],13262:[[75,77],256],13263:[[107,116],256],13264:[[108,109],256],13265:[[108,110],256],13266:[[108,111,103],256],13267:[[108,120],256],13268:[[109,98],256],13269:[[109,105,108],256],13270:[[109,111,108],256],13271:[[80,72],256],13272:[[112,46,109,46],256],13273:[[80,80,77],256],13274:[[80,82],256],13275:[[115,114],256],13276:[[83,118],256],13277:[[87,98],256],13278:[[86,8725,109],256],13279:[[65,8725,109],256],13280:[[49,26085],256],13281:[[50,26085],256],13282:[[51,26085],256],13283:[[52,26085],256],13284:[[53,26085],256],13285:[[54,26085],256],13286:[[55,26085],256],13287:[[56,26085],256],13288:[[57,26085],256],13289:[[49,48,26085],256],13290:[[49,49,26085],256],13291:[[49,50,26085],256],13292:[[49,51,26085],256],13293:[[49,52,26085],256],13294:[[49,53,26085],256],13295:[[49,54,26085],256],13296:[[49,55,26085],256],13297:[[49,56,26085],256],13298:[[49,57,26085],256],13299:[[50,48,26085],256],13300:[[50,49,26085],256],13301:[[50,50,26085],256],13302:[[50,51,26085],256],13303:[[50,52,26085],256],13304:[[50,53,26085],256],13305:[[50,54,26085],256],13306:[[50,55,26085],256],13307:[[50,56,26085],256],13308:[[50,57,26085],256],13309:[[51,48,26085],256],13310:[[51,49,26085],256],13311:[[103,97,108],256]},
+       42496:{42607:[,230],42612:[,230],42613:[,230],42614:[,230],42615:[,230],42616:[,230],42617:[,230],42618:[,230],42619:[,230],42620:[,230],42621:[,230],42655:[,230],42736:[,230],42737:[,230]},
+       42752:{42864:[[42863],256],43000:[[294],256],43001:[[339],256]},
+       43008:{43014:[,9],43204:[,9],43232:[,230],43233:[,230],43234:[,230],43235:[,230],43236:[,230],43237:[,230],43238:[,230],43239:[,230],43240:[,230],43241:[,230],43242:[,230],43243:[,230],43244:[,230],43245:[,230],43246:[,230],43247:[,230],43248:[,230],43249:[,230]},
+       43264:{43307:[,220],43308:[,220],43309:[,220],43347:[,9],43443:[,7],43456:[,9]},
+       43520:{43696:[,230],43698:[,230],43699:[,230],43700:[,220],43703:[,230],43704:[,230],43710:[,230],43711:[,230],43713:[,230],43766:[,9]},
+       43776:{44013:[,9]},
+       53504:{119134:[[119127,119141],512],119135:[[119128,119141],512],119136:[[119135,119150],512],119137:[[119135,119151],512],119138:[[119135,119152],512],119139:[[119135,119153],512],119140:[[119135,119154],512],119141:[,216],119142:[,216],119143:[,1],119144:[,1],119145:[,1],119149:[,226],119150:[,216],119151:[,216],119152:[,216],119153:[,216],119154:[,216],119163:[,220],119164:[,220],119165:[,220],119166:[,220],119167:[,220],119168:[,220],119169:[,220],119170:[,220],119173:[,230],119174:[,230],119175:[,230],119176:[,230],119177:[,230],119178:[,220],119179:[,220],119210:[,230],119211:[,230],119212:[,230],119213:[,230],119227:[[119225,119141],512],119228:[[119226,119141],512],119229:[[119227,119150],512],119230:[[119228,119150],512],119231:[[119227,119151],512],119232:[[119228,119151],512]},
+       53760:{119362:[,230],119363:[,230],119364:[,230]},
+       54272:{119808:[[65],256],119809:[[66],256],119810:[[67],256],119811:[[68],256],119812:[[69],256],119813:[[70],256],119814:[[71],256],119815:[[72],256],119816:[[73],256],119817:[[74],256],119818:[[75],256],119819:[[76],256],119820:[[77],256],119821:[[78],256],119822:[[79],256],119823:[[80],256],119824:[[81],256],119825:[[82],256],119826:[[83],256],119827:[[84],256],119828:[[85],256],119829:[[86],256],119830:[[87],256],119831:[[88],256],119832:[[89],256],119833:[[90],256],119834:[[97],256],119835:[[98],256],119836:[[99],256],119837:[[100],256],119838:[[101],256],119839:[[102],256],119840:[[103],256],119841:[[104],256],119842:[[105],256],119843:[[106],256],119844:[[107],256],119845:[[108],256],119846:[[109],256],119847:[[110],256],119848:[[111],256],119849:[[112],256],119850:[[113],256],119851:[[114],256],119852:[[115],256],119853:[[116],256],119854:[[117],256],119855:[[118],256],119856:[[119],256],119857:[[120],256],119858:[[121],256],119859:[[122],256],119860:[[65],256],119861:[[66],256],119862:[[67],256],119863:[[68],256],119864:[[69],256],119865:[[70],256],119866:[[71],256],119867:[[72],256],119868:[[73],256],119869:[[74],256],119870:[[75],256],119871:[[76],256],119872:[[77],256],119873:[[78],256],119874:[[79],256],119875:[[80],256],119876:[[81],256],119877:[[82],256],119878:[[83],256],119879:[[84],256],119880:[[85],256],119881:[[86],256],119882:[[87],256],119883:[[88],256],119884:[[89],256],119885:[[90],256],119886:[[97],256],119887:[[98],256],119888:[[99],256],119889:[[100],256],119890:[[101],256],119891:[[102],256],119892:[[103],256],119894:[[105],256],119895:[[106],256],119896:[[107],256],119897:[[108],256],119898:[[109],256],119899:[[110],256],119900:[[111],256],119901:[[112],256],119902:[[113],256],119903:[[114],256],119904:[[115],256],119905:[[116],256],119906:[[117],256],119907:[[118],256],119908:[[119],256],119909:[[120],256],119910:[[121],256],119911:[[122],256],119912:[[65],256],119913:[[66],256],119914:[[67],256],119915:[[68],256],119916:[[69],256],119917:[[70],256],119918:[[71],256],119919:[[72],256],119920:[[73],256],119921:[[74],256],119922:[[75],256],119923:[[76],256],119924:[[77],256],119925:[[78],256],119926:[[79],256],119927:[[80],256],119928:[[81],256],119929:[[82],256],119930:[[83],256],119931:[[84],256],119932:[[85],256],119933:[[86],256],119934:[[87],256],119935:[[88],256],119936:[[89],256],119937:[[90],256],119938:[[97],256],119939:[[98],256],119940:[[99],256],119941:[[100],256],119942:[[101],256],119943:[[102],256],119944:[[103],256],119945:[[104],256],119946:[[105],256],119947:[[106],256],119948:[[107],256],119949:[[108],256],119950:[[109],256],119951:[[110],256],119952:[[111],256],119953:[[112],256],119954:[[113],256],119955:[[114],256],119956:[[115],256],119957:[[116],256],119958:[[117],256],119959:[[118],256],119960:[[119],256],119961:[[120],256],119962:[[121],256],119963:[[122],256],119964:[[65],256],119966:[[67],256],119967:[[68],256],119970:[[71],256],119973:[[74],256],119974:[[75],256],119977:[[78],256],119978:[[79],256],119979:[[80],256],119980:[[81],256],119982:[[83],256],119983:[[84],256],119984:[[85],256],119985:[[86],256],119986:[[87],256],119987:[[88],256],119988:[[89],256],119989:[[90],256],119990:[[97],256],119991:[[98],256],119992:[[99],256],119993:[[100],256],119995:[[102],256],119997:[[104],256],119998:[[105],256],119999:[[106],256],120000:[[107],256],120001:[[108],256],120002:[[109],256],120003:[[110],256],120005:[[112],256],120006:[[113],256],120007:[[114],256],120008:[[115],256],120009:[[116],256],120010:[[117],256],120011:[[118],256],120012:[[119],256],120013:[[120],256],120014:[[121],256],120015:[[122],256],120016:[[65],256],120017:[[66],256],120018:[[67],256],120019:[[68],256],120020:[[69],256],120021:[[70],256],120022:[[71],256],120023:[[72],256],120024:[[73],256],120025:[[74],256],120026:[[75],256],120027:[[76],256],120028:[[77],256],120029:[[78],256],120030:[[79],256],120031:[[80],256],120032:[[81],256],120033:[[82],256],120034:[[83],256],120035:[[84],256],120036:[[85],256],120037:[[86],256],120038:[[87],256],120039:[[88],256],120040:[[89],256],120041:[[90],256],120042:[[97],256],120043:[[98],256],120044:[[99],256],120045:[[100],256],120046:[[101],256],120047:[[102],256],120048:[[103],256],120049:[[104],256],120050:[[105],256],120051:[[106],256],120052:[[107],256],120053:[[108],256],120054:[[109],256],120055:[[110],256],120056:[[111],256],120057:[[112],256],120058:[[113],256],120059:[[114],256],120060:[[115],256],120061:[[116],256],120062:[[117],256],120063:[[118],256]},
+       54528:{120064:[[119],256],120065:[[120],256],120066:[[121],256],120067:[[122],256],120068:[[65],256],120069:[[66],256],120071:[[68],256],120072:[[69],256],120073:[[70],256],120074:[[71],256],120077:[[74],256],120078:[[75],256],120079:[[76],256],120080:[[77],256],120081:[[78],256],120082:[[79],256],120083:[[80],256],120084:[[81],256],120086:[[83],256],120087:[[84],256],120088:[[85],256],120089:[[86],256],120090:[[87],256],120091:[[88],256],120092:[[89],256],120094:[[97],256],120095:[[98],256],120096:[[99],256],120097:[[100],256],120098:[[101],256],120099:[[102],256],120100:[[103],256],120101:[[104],256],120102:[[105],256],120103:[[106],256],120104:[[107],256],120105:[[108],256],120106:[[109],256],120107:[[110],256],120108:[[111],256],120109:[[112],256],120110:[[113],256],120111:[[114],256],120112:[[115],256],120113:[[116],256],120114:[[117],256],120115:[[118],256],120116:[[119],256],120117:[[120],256],120118:[[121],256],120119:[[122],256],120120:[[65],256],120121:[[66],256],120123:[[68],256],120124:[[69],256],120125:[[70],256],120126:[[71],256],120128:[[73],256],120129:[[74],256],120130:[[75],256],120131:[[76],256],120132:[[77],256],120134:[[79],256],120138:[[83],256],120139:[[84],256],120140:[[85],256],120141:[[86],256],120142:[[87],256],120143:[[88],256],120144:[[89],256],120146:[[97],256],120147:[[98],256],120148:[[99],256],120149:[[100],256],120150:[[101],256],120151:[[102],256],120152:[[103],256],120153:[[104],256],120154:[[105],256],120155:[[106],256],120156:[[107],256],120157:[[108],256],120158:[[109],256],120159:[[110],256],120160:[[111],256],120161:[[112],256],120162:[[113],256],120163:[[114],256],120164:[[115],256],120165:[[116],256],120166:[[117],256],120167:[[118],256],120168:[[119],256],120169:[[120],256],120170:[[121],256],120171:[[122],256],120172:[[65],256],120173:[[66],256],120174:[[67],256],120175:[[68],256],120176:[[69],256],120177:[[70],256],120178:[[71],256],120179:[[72],256],120180:[[73],256],120181:[[74],256],120182:[[75],256],120183:[[76],256],120184:[[77],256],120185:[[78],256],120186:[[79],256],120187:[[80],256],120188:[[81],256],120189:[[82],256],120190:[[83],256],120191:[[84],256],120192:[[85],256],120193:[[86],256],120194:[[87],256],120195:[[88],256],120196:[[89],256],120197:[[90],256],120198:[[97],256],120199:[[98],256],120200:[[99],256],120201:[[100],256],120202:[[101],256],120203:[[102],256],120204:[[103],256],120205:[[104],256],120206:[[105],256],120207:[[106],256],120208:[[107],256],120209:[[108],256],120210:[[109],256],120211:[[110],256],120212:[[111],256],120213:[[112],256],120214:[[113],256],120215:[[114],256],120216:[[115],256],120217:[[116],256],120218:[[117],256],120219:[[118],256],120220:[[119],256],120221:[[120],256],120222:[[121],256],120223:[[122],256],120224:[[65],256],120225:[[66],256],120226:[[67],256],120227:[[68],256],120228:[[69],256],120229:[[70],256],120230:[[71],256],120231:[[72],256],120232:[[73],256],120233:[[74],256],120234:[[75],256],120235:[[76],256],120236:[[77],256],120237:[[78],256],120238:[[79],256],120239:[[80],256],120240:[[81],256],120241:[[82],256],120242:[[83],256],120243:[[84],256],120244:[[85],256],120245:[[86],256],120246:[[87],256],120247:[[88],256],120248:[[89],256],120249:[[90],256],120250:[[97],256],120251:[[98],256],120252:[[99],256],120253:[[100],256],120254:[[101],256],120255:[[102],256],120256:[[103],256],120257:[[104],256],120258:[[105],256],120259:[[106],256],120260:[[107],256],120261:[[108],256],120262:[[109],256],120263:[[110],256],120264:[[111],256],120265:[[112],256],120266:[[113],256],120267:[[114],256],120268:[[115],256],120269:[[116],256],120270:[[117],256],120271:[[118],256],120272:[[119],256],120273:[[120],256],120274:[[121],256],120275:[[122],256],120276:[[65],256],120277:[[66],256],120278:[[67],256],120279:[[68],256],120280:[[69],256],120281:[[70],256],120282:[[71],256],120283:[[72],256],120284:[[73],256],120285:[[74],256],120286:[[75],256],120287:[[76],256],120288:[[77],256],120289:[[78],256],120290:[[79],256],120291:[[80],256],120292:[[81],256],120293:[[82],256],120294:[[83],256],120295:[[84],256],120296:[[85],256],120297:[[86],256],120298:[[87],256],120299:[[88],256],120300:[[89],256],120301:[[90],256],120302:[[97],256],120303:[[98],256],120304:[[99],256],120305:[[100],256],120306:[[101],256],120307:[[102],256],120308:[[103],256],120309:[[104],256],120310:[[105],256],120311:[[106],256],120312:[[107],256],120313:[[108],256],120314:[[109],256],120315:[[110],256],120316:[[111],256],120317:[[112],256],120318:[[113],256],120319:[[114],256]},
+       54784:{120320:[[115],256],120321:[[116],256],120322:[[117],256],120323:[[118],256],120324:[[119],256],120325:[[120],256],120326:[[121],256],120327:[[122],256],120328:[[65],256],120329:[[66],256],120330:[[67],256],120331:[[68],256],120332:[[69],256],120333:[[70],256],120334:[[71],256],120335:[[72],256],120336:[[73],256],120337:[[74],256],120338:[[75],256],120339:[[76],256],120340:[[77],256],120341:[[78],256],120342:[[79],256],120343:[[80],256],120344:[[81],256],120345:[[82],256],120346:[[83],256],120347:[[84],256],120348:[[85],256],120349:[[86],256],120350:[[87],256],120351:[[88],256],120352:[[89],256],120353:[[90],256],120354:[[97],256],120355:[[98],256],120356:[[99],256],120357:[[100],256],120358:[[101],256],120359:[[102],256],120360:[[103],256],120361:[[104],256],120362:[[105],256],120363:[[106],256],120364:[[107],256],120365:[[108],256],120366:[[109],256],120367:[[110],256],120368:[[111],256],120369:[[112],256],120370:[[113],256],120371:[[114],256],120372:[[115],256],120373:[[116],256],120374:[[117],256],120375:[[118],256],120376:[[119],256],120377:[[120],256],120378:[[121],256],120379:[[122],256],120380:[[65],256],120381:[[66],256],120382:[[67],256],120383:[[68],256],120384:[[69],256],120385:[[70],256],120386:[[71],256],120387:[[72],256],120388:[[73],256],120389:[[74],256],120390:[[75],256],120391:[[76],256],120392:[[77],256],120393:[[78],256],120394:[[79],256],120395:[[80],256],120396:[[81],256],120397:[[82],256],120398:[[83],256],120399:[[84],256],120400:[[85],256],120401:[[86],256],120402:[[87],256],120403:[[88],256],120404:[[89],256],120405:[[90],256],120406:[[97],256],120407:[[98],256],120408:[[99],256],120409:[[100],256],120410:[[101],256],120411:[[102],256],120412:[[103],256],120413:[[104],256],120414:[[105],256],120415:[[106],256],120416:[[107],256],120417:[[108],256],120418:[[109],256],120419:[[110],256],120420:[[111],256],120421:[[112],256],120422:[[113],256],120423:[[114],256],120424:[[115],256],120425:[[116],256],120426:[[117],256],120427:[[118],256],120428:[[119],256],120429:[[120],256],120430:[[121],256],120431:[[122],256],120432:[[65],256],120433:[[66],256],120434:[[67],256],120435:[[68],256],120436:[[69],256],120437:[[70],256],120438:[[71],256],120439:[[72],256],120440:[[73],256],120441:[[74],256],120442:[[75],256],120443:[[76],256],120444:[[77],256],120445:[[78],256],120446:[[79],256],120447:[[80],256],120448:[[81],256],120449:[[82],256],120450:[[83],256],120451:[[84],256],120452:[[85],256],120453:[[86],256],120454:[[87],256],120455:[[88],256],120456:[[89],256],120457:[[90],256],120458:[[97],256],120459:[[98],256],120460:[[99],256],120461:[[100],256],120462:[[101],256],120463:[[102],256],120464:[[103],256],120465:[[104],256],120466:[[105],256],120467:[[106],256],120468:[[107],256],120469:[[108],256],120470:[[109],256],120471:[[110],256],120472:[[111],256],120473:[[112],256],120474:[[113],256],120475:[[114],256],120476:[[115],256],120477:[[116],256],120478:[[117],256],120479:[[118],256],120480:[[119],256],120481:[[120],256],120482:[[121],256],120483:[[122],256],120484:[[305],256],120485:[[567],256],120488:[[913],256],120489:[[914],256],120490:[[915],256],120491:[[916],256],120492:[[917],256],120493:[[918],256],120494:[[919],256],120495:[[920],256],120496:[[921],256],120497:[[922],256],120498:[[923],256],120499:[[924],256],120500:[[925],256],120501:[[926],256],120502:[[927],256],120503:[[928],256],120504:[[929],256],120505:[[1012],256],120506:[[931],256],120507:[[932],256],120508:[[933],256],120509:[[934],256],120510:[[935],256],120511:[[936],256],120512:[[937],256],120513:[[8711],256],120514:[[945],256],120515:[[946],256],120516:[[947],256],120517:[[948],256],120518:[[949],256],120519:[[950],256],120520:[[951],256],120521:[[952],256],120522:[[953],256],120523:[[954],256],120524:[[955],256],120525:[[956],256],120526:[[957],256],120527:[[958],256],120528:[[959],256],120529:[[960],256],120530:[[961],256],120531:[[962],256],120532:[[963],256],120533:[[964],256],120534:[[965],256],120535:[[966],256],120536:[[967],256],120537:[[968],256],120538:[[969],256],120539:[[8706],256],120540:[[1013],256],120541:[[977],256],120542:[[1008],256],120543:[[981],256],120544:[[1009],256],120545:[[982],256],120546:[[913],256],120547:[[914],256],120548:[[915],256],120549:[[916],256],120550:[[917],256],120551:[[918],256],120552:[[919],256],120553:[[920],256],120554:[[921],256],120555:[[922],256],120556:[[923],256],120557:[[924],256],120558:[[925],256],120559:[[926],256],120560:[[927],256],120561:[[928],256],120562:[[929],256],120563:[[1012],256],120564:[[931],256],120565:[[932],256],120566:[[933],256],120567:[[934],256],120568:[[935],256],120569:[[936],256],120570:[[937],256],120571:[[8711],256],120572:[[945],256],120573:[[946],256],120574:[[947],256],120575:[[948],256]},
+       55040:{120576:[[949],256],120577:[[950],256],120578:[[951],256],120579:[[952],256],120580:[[953],256],120581:[[954],256],120582:[[955],256],120583:[[956],256],120584:[[957],256],120585:[[958],256],120586:[[959],256],120587:[[960],256],120588:[[961],256],120589:[[962],256],120590:[[963],256],120591:[[964],256],120592:[[965],256],120593:[[966],256],120594:[[967],256],120595:[[968],256],120596:[[969],256],120597:[[8706],256],120598:[[1013],256],120599:[[977],256],120600:[[1008],256],120601:[[981],256],120602:[[1009],256],120603:[[982],256],120604:[[913],256],120605:[[914],256],120606:[[915],256],120607:[[916],256],120608:[[917],256],120609:[[918],256],120610:[[919],256],120611:[[920],256],120612:[[921],256],120613:[[922],256],120614:[[923],256],120615:[[924],256],120616:[[925],256],120617:[[926],256],120618:[[927],256],120619:[[928],256],120620:[[929],256],120621:[[1012],256],120622:[[931],256],120623:[[932],256],120624:[[933],256],120625:[[934],256],120626:[[935],256],120627:[[936],256],120628:[[937],256],120629:[[8711],256],120630:[[945],256],120631:[[946],256],120632:[[947],256],120633:[[948],256],120634:[[949],256],120635:[[950],256],120636:[[951],256],120637:[[952],256],120638:[[953],256],120639:[[954],256],120640:[[955],256],120641:[[956],256],120642:[[957],256],120643:[[958],256],120644:[[959],256],120645:[[960],256],120646:[[961],256],120647:[[962],256],120648:[[963],256],120649:[[964],256],120650:[[965],256],120651:[[966],256],120652:[[967],256],120653:[[968],256],120654:[[969],256],120655:[[8706],256],120656:[[1013],256],120657:[[977],256],120658:[[1008],256],120659:[[981],256],120660:[[1009],256],120661:[[982],256],120662:[[913],256],120663:[[914],256],120664:[[915],256],120665:[[916],256],120666:[[917],256],120667:[[918],256],120668:[[919],256],120669:[[920],256],120670:[[921],256],120671:[[922],256],120672:[[923],256],120673:[[924],256],120674:[[925],256],120675:[[926],256],120676:[[927],256],120677:[[928],256],120678:[[929],256],120679:[[1012],256],120680:[[931],256],120681:[[932],256],120682:[[933],256],120683:[[934],256],120684:[[935],256],120685:[[936],256],120686:[[937],256],120687:[[8711],256],120688:[[945],256],120689:[[946],256],120690:[[947],256],120691:[[948],256],120692:[[949],256],120693:[[950],256],120694:[[951],256],120695:[[952],256],120696:[[953],256],120697:[[954],256],120698:[[955],256],120699:[[956],256],120700:[[957],256],120701:[[958],256],120702:[[959],256],120703:[[960],256],120704:[[961],256],120705:[[962],256],120706:[[963],256],120707:[[964],256],120708:[[965],256],120709:[[966],256],120710:[[967],256],120711:[[968],256],120712:[[969],256],120713:[[8706],256],120714:[[1013],256],120715:[[977],256],120716:[[1008],256],120717:[[981],256],120718:[[1009],256],120719:[[982],256],120720:[[913],256],120721:[[914],256],120722:[[915],256],120723:[[916],256],120724:[[917],256],120725:[[918],256],120726:[[919],256],120727:[[920],256],120728:[[921],256],120729:[[922],256],120730:[[923],256],120731:[[924],256],120732:[[925],256],120733:[[926],256],120734:[[927],256],120735:[[928],256],120736:[[929],256],120737:[[1012],256],120738:[[931],256],120739:[[932],256],120740:[[933],256],120741:[[934],256],120742:[[935],256],120743:[[936],256],120744:[[937],256],120745:[[8711],256],120746:[[945],256],120747:[[946],256],120748:[[947],256],120749:[[948],256],120750:[[949],256],120751:[[950],256],120752:[[951],256],120753:[[952],256],120754:[[953],256],120755:[[954],256],120756:[[955],256],120757:[[956],256],120758:[[957],256],120759:[[958],256],120760:[[959],256],120761:[[960],256],120762:[[961],256],120763:[[962],256],120764:[[963],256],120765:[[964],256],120766:[[965],256],120767:[[966],256],120768:[[967],256],120769:[[968],256],120770:[[969],256],120771:[[8706],256],120772:[[1013],256],120773:[[977],256],120774:[[1008],256],120775:[[981],256],120776:[[1009],256],120777:[[982],256],120778:[[988],256],120779:[[989],256],120782:[[48],256],120783:[[49],256],120784:[[50],256],120785:[[51],256],120786:[[52],256],120787:[[53],256],120788:[[54],256],120789:[[55],256],120790:[[56],256],120791:[[57],256],120792:[[48],256],120793:[[49],256],120794:[[50],256],120795:[[51],256],120796:[[52],256],120797:[[53],256],120798:[[54],256],120799:[[55],256],120800:[[56],256],120801:[[57],256],120802:[[48],256],120803:[[49],256],120804:[[50],256],120805:[[51],256],120806:[[52],256],120807:[[53],256],120808:[[54],256],120809:[[55],256],120810:[[56],256],120811:[[57],256],120812:[[48],256],120813:[[49],256],120814:[[50],256],120815:[[51],256],120816:[[52],256],120817:[[53],256],120818:[[54],256],120819:[[55],256],120820:[[56],256],120821:[[57],256],120822:[[48],256],120823:[[49],256],120824:[[50],256],120825:[[51],256],120826:[[52],256],120827:[[53],256],120828:[[54],256],120829:[[55],256],120830:[[56],256],120831:[[57],256]},
+       60928:{126464:[[1575],256],126465:[[1576],256],126466:[[1580],256],126467:[[1583],256],126469:[[1608],256],126470:[[1586],256],126471:[[1581],256],126472:[[1591],256],126473:[[1610],256],126474:[[1603],256],126475:[[1604],256],126476:[[1605],256],126477:[[1606],256],126478:[[1587],256],126479:[[1593],256],126480:[[1601],256],126481:[[1589],256],126482:[[1602],256],126483:[[1585],256],126484:[[1588],256],126485:[[1578],256],126486:[[1579],256],126487:[[1582],256],126488:[[1584],256],126489:[[1590],256],126490:[[1592],256],126491:[[1594],256],126492:[[1646],256],126493:[[1722],256],126494:[[1697],256],126495:[[1647],256],126497:[[1576],256],126498:[[1580],256],126500:[[1607],256],126503:[[1581],256],126505:[[1610],256],126506:[[1603],256],126507:[[1604],256],126508:[[1605],256],126509:[[1606],256],126510:[[1587],256],126511:[[1593],256],126512:[[1601],256],126513:[[1589],256],126514:[[1602],256],126516:[[1588],256],126517:[[1578],256],126518:[[1579],256],126519:[[1582],256],126521:[[1590],256],126523:[[1594],256],126530:[[1580],256],126535:[[1581],256],126537:[[1610],256],126539:[[1604],256],126541:[[1606],256],126542:[[1587],256],126543:[[1593],256],126545:[[1589],256],126546:[[1602],256],126548:[[1588],256],126551:[[1582],256],126553:[[1590],256],126555:[[1594],256],126557:[[1722],256],126559:[[1647],256],126561:[[1576],256],126562:[[1580],256],126564:[[1607],256],126567:[[1581],256],126568:[[1591],256],126569:[[1610],256],126570:[[1603],256],126572:[[1605],256],126573:[[1606],256],126574:[[1587],256],126575:[[1593],256],126576:[[1601],256],126577:[[1589],256],126578:[[1602],256],126580:[[1588],256],126581:[[1578],256],126582:[[1579],256],126583:[[1582],256],126585:[[1590],256],126586:[[1592],256],126587:[[1594],256],126588:[[1646],256],126590:[[1697],256],126592:[[1575],256],126593:[[1576],256],126594:[[1580],256],126595:[[1583],256],126596:[[1607],256],126597:[[1608],256],126598:[[1586],256],126599:[[1581],256],126600:[[1591],256],126601:[[1610],256],126603:[[1604],256],126604:[[1605],256],126605:[[1606],256],126606:[[1587],256],126607:[[1593],256],126608:[[1601],256],126609:[[1589],256],126610:[[1602],256],126611:[[1585],256],126612:[[1588],256],126613:[[1578],256],126614:[[1579],256],126615:[[1582],256],126616:[[1584],256],126617:[[1590],256],126618:[[1592],256],126619:[[1594],256],126625:[[1576],256],126626:[[1580],256],126627:[[1583],256],126629:[[1608],256],126630:[[1586],256],126631:[[1581],256],126632:[[1591],256],126633:[[1610],256],126635:[[1604],256],126636:[[1605],256],126637:[[1606],256],126638:[[1587],256],126639:[[1593],256],126640:[[1601],256],126641:[[1589],256],126642:[[1602],256],126643:[[1585],256],126644:[[1588],256],126645:[[1578],256],126646:[[1579],256],126647:[[1582],256],126648:[[1584],256],126649:[[1590],256],126650:[[1592],256],126651:[[1594],256]},
+       61696:{127232:[[48,46],256],127233:[[48,44],256],127234:[[49,44],256],127235:[[50,44],256],127236:[[51,44],256],127237:[[52,44],256],127238:[[53,44],256],127239:[[54,44],256],127240:[[55,44],256],127241:[[56,44],256],127242:[[57,44],256],127248:[[40,65,41],256],127249:[[40,66,41],256],127250:[[40,67,41],256],127251:[[40,68,41],256],127252:[[40,69,41],256],127253:[[40,70,41],256],127254:[[40,71,41],256],127255:[[40,72,41],256],127256:[[40,73,41],256],127257:[[40,74,41],256],127258:[[40,75,41],256],127259:[[40,76,41],256],127260:[[40,77,41],256],127261:[[40,78,41],256],127262:[[40,79,41],256],127263:[[40,80,41],256],127264:[[40,81,41],256],127265:[[40,82,41],256],127266:[[40,83,41],256],127267:[[40,84,41],256],127268:[[40,85,41],256],127269:[[40,86,41],256],127270:[[40,87,41],256],127271:[[40,88,41],256],127272:[[40,89,41],256],127273:[[40,90,41],256],127274:[[12308,83,12309],256],127275:[[67],256],127276:[[82],256],127277:[[67,68],256],127278:[[87,90],256],127280:[[65],256],127281:[[66],256],127282:[[67],256],127283:[[68],256],127284:[[69],256],127285:[[70],256],127286:[[71],256],127287:[[72],256],127288:[[73],256],127289:[[74],256],127290:[[75],256],127291:[[76],256],127292:[[77],256],127293:[[78],256],127294:[[79],256],127295:[[80],256],127296:[[81],256],127297:[[82],256],127298:[[83],256],127299:[[84],256],127300:[[85],256],127301:[[86],256],127302:[[87],256],127303:[[88],256],127304:[[89],256],127305:[[90],256],127306:[[72,86],256],127307:[[77,86],256],127308:[[83,68],256],127309:[[83,83],256],127310:[[80,80,86],256],127311:[[87,67],256],127338:[[77,67],256],127339:[[77,68],256],127376:[[68,74],256]},
+       61952:{127488:[[12411,12363],256],127489:[[12467,12467],256],127490:[[12469],256],127504:[[25163],256],127505:[[23383],256],127506:[[21452],256],127507:[[12487],256],127508:[[20108],256],127509:[[22810],256],127510:[[35299],256],127511:[[22825],256],127512:[[20132],256],127513:[[26144],256],127514:[[28961],256],127515:[[26009],256],127516:[[21069],256],127517:[[24460],256],127518:[[20877],256],127519:[[26032],256],127520:[[21021],256],127521:[[32066],256],127522:[[29983],256],127523:[[36009],256],127524:[[22768],256],127525:[[21561],256],127526:[[28436],256],127527:[[25237],256],127528:[[25429],256],127529:[[19968],256],127530:[[19977],256],127531:[[36938],256],127532:[[24038],256],127533:[[20013],256],127534:[[21491],256],127535:[[25351],256],127536:[[36208],256],127537:[[25171],256],127538:[[31105],256],127539:[[31354],256],127540:[[21512],256],127541:[[28288],256],127542:[[26377],256],127543:[[26376],256],127544:[[30003],256],127545:[[21106],256],127546:[[21942],256],127552:[[12308,26412,12309],256],127553:[[12308,19977,12309],256],127554:[[12308,20108,12309],256],127555:[[12308,23433,12309],256],127556:[[12308,28857,12309],256],127557:[[12308,25171,12309],256],127558:[[12308,30423,12309],256],127559:[[12308,21213,12309],256],127560:[[12308,25943,12309],256],127568:[[24471],256],127569:[[21487],256]},
+       63488:{194560:[[20029]],194561:[[20024]],194562:[[20033]],194563:[[131362]],194564:[[20320]],194565:[[20398]],194566:[[20411]],194567:[[20482]],194568:[[20602]],194569:[[20633]],194570:[[20711]],194571:[[20687]],194572:[[13470]],194573:[[132666]],194574:[[20813]],194575:[[20820]],194576:[[20836]],194577:[[20855]],194578:[[132380]],194579:[[13497]],194580:[[20839]],194581:[[20877]],194582:[[132427]],194583:[[20887]],194584:[[20900]],194585:[[20172]],194586:[[20908]],194587:[[20917]],194588:[[168415]],194589:[[20981]],194590:[[20995]],194591:[[13535]],194592:[[21051]],194593:[[21062]],194594:[[21106]],194595:[[21111]],194596:[[13589]],194597:[[21191]],194598:[[21193]],194599:[[21220]],194600:[[21242]],194601:[[21253]],194602:[[21254]],194603:[[21271]],194604:[[21321]],194605:[[21329]],194606:[[21338]],194607:[[21363]],194608:[[21373]],194609:[[21375]],194610:[[21375]],194611:[[21375]],194612:[[133676]],194613:[[28784]],194614:[[21450]],194615:[[21471]],194616:[[133987]],194617:[[21483]],194618:[[21489]],194619:[[21510]],194620:[[21662]],194621:[[21560]],194622:[[21576]],194623:[[21608]],194624:[[21666]],194625:[[21750]],194626:[[21776]],194627:[[21843]],194628:[[21859]],194629:[[21892]],194630:[[21892]],194631:[[21913]],194632:[[21931]],194633:[[21939]],194634:[[21954]],194635:[[22294]],194636:[[22022]],194637:[[22295]],194638:[[22097]],194639:[[22132]],194640:[[20999]],194641:[[22766]],194642:[[22478]],194643:[[22516]],194644:[[22541]],194645:[[22411]],194646:[[22578]],194647:[[22577]],194648:[[22700]],194649:[[136420]],194650:[[22770]],194651:[[22775]],194652:[[22790]],194653:[[22810]],194654:[[22818]],194655:[[22882]],194656:[[136872]],194657:[[136938]],194658:[[23020]],194659:[[23067]],194660:[[23079]],194661:[[23000]],194662:[[23142]],194663:[[14062]],194664:[[14076]],194665:[[23304]],194666:[[23358]],194667:[[23358]],194668:[[137672]],194669:[[23491]],194670:[[23512]],194671:[[23527]],194672:[[23539]],194673:[[138008]],194674:[[23551]],194675:[[23558]],194676:[[24403]],194677:[[23586]],194678:[[14209]],194679:[[23648]],194680:[[23662]],194681:[[23744]],194682:[[23693]],194683:[[138724]],194684:[[23875]],194685:[[138726]],194686:[[23918]],194687:[[23915]],194688:[[23932]],194689:[[24033]],194690:[[24034]],194691:[[14383]],194692:[[24061]],194693:[[24104]],194694:[[24125]],194695:[[24169]],194696:[[14434]],194697:[[139651]],194698:[[14460]],194699:[[24240]],194700:[[24243]],194701:[[24246]],194702:[[24266]],194703:[[172946]],194704:[[24318]],194705:[[140081]],194706:[[140081]],194707:[[33281]],194708:[[24354]],194709:[[24354]],194710:[[14535]],194711:[[144056]],194712:[[156122]],194713:[[24418]],194714:[[24427]],194715:[[14563]],194716:[[24474]],194717:[[24525]],194718:[[24535]],194719:[[24569]],194720:[[24705]],194721:[[14650]],194722:[[14620]],194723:[[24724]],194724:[[141012]],194725:[[24775]],194726:[[24904]],194727:[[24908]],194728:[[24910]],194729:[[24908]],194730:[[24954]],194731:[[24974]],194732:[[25010]],194733:[[24996]],194734:[[25007]],194735:[[25054]],194736:[[25074]],194737:[[25078]],194738:[[25104]],194739:[[25115]],194740:[[25181]],194741:[[25265]],194742:[[25300]],194743:[[25424]],194744:[[142092]],194745:[[25405]],194746:[[25340]],194747:[[25448]],194748:[[25475]],194749:[[25572]],194750:[[142321]],194751:[[25634]],194752:[[25541]],194753:[[25513]],194754:[[14894]],194755:[[25705]],194756:[[25726]],194757:[[25757]],194758:[[25719]],194759:[[14956]],194760:[[25935]],194761:[[25964]],194762:[[143370]],194763:[[26083]],194764:[[26360]],194765:[[26185]],194766:[[15129]],194767:[[26257]],194768:[[15112]],194769:[[15076]],194770:[[20882]],194771:[[20885]],194772:[[26368]],194773:[[26268]],194774:[[32941]],194775:[[17369]],194776:[[26391]],194777:[[26395]],194778:[[26401]],194779:[[26462]],194780:[[26451]],194781:[[144323]],194782:[[15177]],194783:[[26618]],194784:[[26501]],194785:[[26706]],194786:[[26757]],194787:[[144493]],194788:[[26766]],194789:[[26655]],194790:[[26900]],194791:[[15261]],194792:[[26946]],194793:[[27043]],194794:[[27114]],194795:[[27304]],194796:[[145059]],194797:[[27355]],194798:[[15384]],194799:[[27425]],194800:[[145575]],194801:[[27476]],194802:[[15438]],194803:[[27506]],194804:[[27551]],194805:[[27578]],194806:[[27579]],194807:[[146061]],194808:[[138507]],194809:[[146170]],194810:[[27726]],194811:[[146620]],194812:[[27839]],194813:[[27853]],194814:[[27751]],194815:[[27926]]},
+       63744:{63744:[[35912]],63745:[[26356]],63746:[[36554]],63747:[[36040]],63748:[[28369]],63749:[[20018]],63750:[[21477]],63751:[[40860]],63752:[[40860]],63753:[[22865]],63754:[[37329]],63755:[[21895]],63756:[[22856]],63757:[[25078]],63758:[[30313]],63759:[[32645]],63760:[[34367]],63761:[[34746]],63762:[[35064]],63763:[[37007]],63764:[[27138]],63765:[[27931]],63766:[[28889]],63767:[[29662]],63768:[[33853]],63769:[[37226]],63770:[[39409]],63771:[[20098]],63772:[[21365]],63773:[[27396]],63774:[[29211]],63775:[[34349]],63776:[[40478]],63777:[[23888]],63778:[[28651]],63779:[[34253]],63780:[[35172]],63781:[[25289]],63782:[[33240]],63783:[[34847]],63784:[[24266]],63785:[[26391]],63786:[[28010]],63787:[[29436]],63788:[[37070]],63789:[[20358]],63790:[[20919]],63791:[[21214]],63792:[[25796]],63793:[[27347]],63794:[[29200]],63795:[[30439]],63796:[[32769]],63797:[[34310]],63798:[[34396]],63799:[[36335]],63800:[[38706]],63801:[[39791]],63802:[[40442]],63803:[[30860]],63804:[[31103]],63805:[[32160]],63806:[[33737]],63807:[[37636]],63808:[[40575]],63809:[[35542]],63810:[[22751]],63811:[[24324]],63812:[[31840]],63813:[[32894]],63814:[[29282]],63815:[[30922]],63816:[[36034]],63817:[[38647]],63818:[[22744]],63819:[[23650]],63820:[[27155]],63821:[[28122]],63822:[[28431]],63823:[[32047]],63824:[[32311]],63825:[[38475]],63826:[[21202]],63827:[[32907]],63828:[[20956]],63829:[[20940]],63830:[[31260]],63831:[[32190]],63832:[[33777]],63833:[[38517]],63834:[[35712]],63835:[[25295]],63836:[[27138]],63837:[[35582]],63838:[[20025]],63839:[[23527]],63840:[[24594]],63841:[[29575]],63842:[[30064]],63843:[[21271]],63844:[[30971]],63845:[[20415]],63846:[[24489]],63847:[[19981]],63848:[[27852]],63849:[[25976]],63850:[[32034]],63851:[[21443]],63852:[[22622]],63853:[[30465]],63854:[[33865]],63855:[[35498]],63856:[[27578]],63857:[[36784]],63858:[[27784]],63859:[[25342]],63860:[[33509]],63861:[[25504]],63862:[[30053]],63863:[[20142]],63864:[[20841]],63865:[[20937]],63866:[[26753]],63867:[[31975]],63868:[[33391]],63869:[[35538]],63870:[[37327]],63871:[[21237]],63872:[[21570]],63873:[[22899]],63874:[[24300]],63875:[[26053]],63876:[[28670]],63877:[[31018]],63878:[[38317]],63879:[[39530]],63880:[[40599]],63881:[[40654]],63882:[[21147]],63883:[[26310]],63884:[[27511]],63885:[[36706]],63886:[[24180]],63887:[[24976]],63888:[[25088]],63889:[[25754]],63890:[[28451]],63891:[[29001]],63892:[[29833]],63893:[[31178]],63894:[[32244]],63895:[[32879]],63896:[[36646]],63897:[[34030]],63898:[[36899]],63899:[[37706]],63900:[[21015]],63901:[[21155]],63902:[[21693]],63903:[[28872]],63904:[[35010]],63905:[[35498]],63906:[[24265]],63907:[[24565]],63908:[[25467]],63909:[[27566]],63910:[[31806]],63911:[[29557]],63912:[[20196]],63913:[[22265]],63914:[[23527]],63915:[[23994]],63916:[[24604]],63917:[[29618]],63918:[[29801]],63919:[[32666]],63920:[[32838]],63921:[[37428]],63922:[[38646]],63923:[[38728]],63924:[[38936]],63925:[[20363]],63926:[[31150]],63927:[[37300]],63928:[[38584]],63929:[[24801]],63930:[[20102]],63931:[[20698]],63932:[[23534]],63933:[[23615]],63934:[[26009]],63935:[[27138]],63936:[[29134]],63937:[[30274]],63938:[[34044]],63939:[[36988]],63940:[[40845]],63941:[[26248]],63942:[[38446]],63943:[[21129]],63944:[[26491]],63945:[[26611]],63946:[[27969]],63947:[[28316]],63948:[[29705]],63949:[[30041]],63950:[[30827]],63951:[[32016]],63952:[[39006]],63953:[[20845]],63954:[[25134]],63955:[[38520]],63956:[[20523]],63957:[[23833]],63958:[[28138]],63959:[[36650]],63960:[[24459]],63961:[[24900]],63962:[[26647]],63963:[[29575]],63964:[[38534]],63965:[[21033]],63966:[[21519]],63967:[[23653]],63968:[[26131]],63969:[[26446]],63970:[[26792]],63971:[[27877]],63972:[[29702]],63973:[[30178]],63974:[[32633]],63975:[[35023]],63976:[[35041]],63977:[[37324]],63978:[[38626]],63979:[[21311]],63980:[[28346]],63981:[[21533]],63982:[[29136]],63983:[[29848]],63984:[[34298]],63985:[[38563]],63986:[[40023]],63987:[[40607]],63988:[[26519]],63989:[[28107]],63990:[[33256]],63991:[[31435]],63992:[[31520]],63993:[[31890]],63994:[[29376]],63995:[[28825]],63996:[[35672]],63997:[[20160]],63998:[[33590]],63999:[[21050]],194816:[[27966]],194817:[[28023]],194818:[[27969]],194819:[[28009]],194820:[[28024]],194821:[[28037]],194822:[[146718]],194823:[[27956]],194824:[[28207]],194825:[[28270]],194826:[[15667]],194827:[[28363]],194828:[[28359]],194829:[[147153]],194830:[[28153]],194831:[[28526]],194832:[[147294]],194833:[[147342]],194834:[[28614]],194835:[[28729]],194836:[[28702]],194837:[[28699]],194838:[[15766]],194839:[[28746]],194840:[[28797]],194841:[[28791]],194842:[[28845]],194843:[[132389]],194844:[[28997]],194845:[[148067]],194846:[[29084]],194847:[[148395]],194848:[[29224]],194849:[[29237]],194850:[[29264]],194851:[[149000]],194852:[[29312]],194853:[[29333]],194854:[[149301]],194855:[[149524]],194856:[[29562]],194857:[[29579]],194858:[[16044]],194859:[[29605]],194860:[[16056]],194861:[[16056]],194862:[[29767]],194863:[[29788]],194864:[[29809]],194865:[[29829]],194866:[[29898]],194867:[[16155]],194868:[[29988]],194869:[[150582]],194870:[[30014]],194871:[[150674]],194872:[[30064]],194873:[[139679]],194874:[[30224]],194875:[[151457]],194876:[[151480]],194877:[[151620]],194878:[[16380]],194879:[[16392]],194880:[[30452]],194881:[[151795]],194882:[[151794]],194883:[[151833]],194884:[[151859]],194885:[[30494]],194886:[[30495]],194887:[[30495]],194888:[[30538]],194889:[[16441]],194890:[[30603]],194891:[[16454]],194892:[[16534]],194893:[[152605]],194894:[[30798]],194895:[[30860]],194896:[[30924]],194897:[[16611]],194898:[[153126]],194899:[[31062]],194900:[[153242]],194901:[[153285]],194902:[[31119]],194903:[[31211]],194904:[[16687]],194905:[[31296]],194906:[[31306]],194907:[[31311]],194908:[[153980]],194909:[[154279]],194910:[[154279]],194911:[[31470]],194912:[[16898]],194913:[[154539]],194914:[[31686]],194915:[[31689]],194916:[[16935]],194917:[[154752]],194918:[[31954]],194919:[[17056]],194920:[[31976]],194921:[[31971]],194922:[[32000]],194923:[[155526]],194924:[[32099]],194925:[[17153]],194926:[[32199]],194927:[[32258]],194928:[[32325]],194929:[[17204]],194930:[[156200]],194931:[[156231]],194932:[[17241]],194933:[[156377]],194934:[[32634]],194935:[[156478]],194936:[[32661]],194937:[[32762]],194938:[[32773]],194939:[[156890]],194940:[[156963]],194941:[[32864]],194942:[[157096]],194943:[[32880]],194944:[[144223]],194945:[[17365]],194946:[[32946]],194947:[[33027]],194948:[[17419]],194949:[[33086]],194950:[[23221]],194951:[[157607]],194952:[[157621]],194953:[[144275]],194954:[[144284]],194955:[[33281]],194956:[[33284]],194957:[[36766]],194958:[[17515]],194959:[[33425]],194960:[[33419]],194961:[[33437]],194962:[[21171]],194963:[[33457]],194964:[[33459]],194965:[[33469]],194966:[[33510]],194967:[[158524]],194968:[[33509]],194969:[[33565]],194970:[[33635]],194971:[[33709]],194972:[[33571]],194973:[[33725]],194974:[[33767]],194975:[[33879]],194976:[[33619]],194977:[[33738]],194978:[[33740]],194979:[[33756]],194980:[[158774]],194981:[[159083]],194982:[[158933]],194983:[[17707]],194984:[[34033]],194985:[[34035]],194986:[[34070]],194987:[[160714]],194988:[[34148]],194989:[[159532]],194990:[[17757]],194991:[[17761]],194992:[[159665]],194993:[[159954]],194994:[[17771]],194995:[[34384]],194996:[[34396]],194997:[[34407]],194998:[[34409]],194999:[[34473]],195000:[[34440]],195001:[[34574]],195002:[[34530]],195003:[[34681]],195004:[[34600]],195005:[[34667]],195006:[[34694]],195007:[[17879]],195008:[[34785]],195009:[[34817]],195010:[[17913]],195011:[[34912]],195012:[[34915]],195013:[[161383]],195014:[[35031]],195015:[[35038]],195016:[[17973]],195017:[[35066]],195018:[[13499]],195019:[[161966]],195020:[[162150]],195021:[[18110]],195022:[[18119]],195023:[[35488]],195024:[[35565]],195025:[[35722]],195026:[[35925]],195027:[[162984]],195028:[[36011]],195029:[[36033]],195030:[[36123]],195031:[[36215]],195032:[[163631]],195033:[[133124]],195034:[[36299]],195035:[[36284]],195036:[[36336]],195037:[[133342]],195038:[[36564]],195039:[[36664]],195040:[[165330]],195041:[[165357]],195042:[[37012]],195043:[[37105]],195044:[[37137]],195045:[[165678]],195046:[[37147]],195047:[[37432]],195048:[[37591]],195049:[[37592]],195050:[[37500]],195051:[[37881]],195052:[[37909]],195053:[[166906]],195054:[[38283]],195055:[[18837]],195056:[[38327]],195057:[[167287]],195058:[[18918]],195059:[[38595]],195060:[[23986]],195061:[[38691]],195062:[[168261]],195063:[[168474]],195064:[[19054]],195065:[[19062]],195066:[[38880]],195067:[[168970]],195068:[[19122]],195069:[[169110]],195070:[[38923]],195071:[[38923]]},
+       64000:{64000:[[20999]],64001:[[24230]],64002:[[25299]],64003:[[31958]],64004:[[23429]],64005:[[27934]],64006:[[26292]],64007:[[36667]],64008:[[34892]],64009:[[38477]],64010:[[35211]],64011:[[24275]],64012:[[20800]],64013:[[21952]],64016:[[22618]],64018:[[26228]],64021:[[20958]],64022:[[29482]],64023:[[30410]],64024:[[31036]],64025:[[31070]],64026:[[31077]],64027:[[31119]],64028:[[38742]],64029:[[31934]],64030:[[32701]],64032:[[34322]],64034:[[35576]],64037:[[36920]],64038:[[37117]],64042:[[39151]],64043:[[39164]],64044:[[39208]],64045:[[40372]],64046:[[37086]],64047:[[38583]],64048:[[20398]],64049:[[20711]],64050:[[20813]],64051:[[21193]],64052:[[21220]],64053:[[21329]],64054:[[21917]],64055:[[22022]],64056:[[22120]],64057:[[22592]],64058:[[22696]],64059:[[23652]],64060:[[23662]],64061:[[24724]],64062:[[24936]],64063:[[24974]],64064:[[25074]],64065:[[25935]],64066:[[26082]],64067:[[26257]],64068:[[26757]],64069:[[28023]],64070:[[28186]],64071:[[28450]],64072:[[29038]],64073:[[29227]],64074:[[29730]],64075:[[30865]],64076:[[31038]],64077:[[31049]],64078:[[31048]],64079:[[31056]],64080:[[31062]],64081:[[31069]],64082:[[31117]],64083:[[31118]],64084:[[31296]],64085:[[31361]],64086:[[31680]],64087:[[32244]],64088:[[32265]],64089:[[32321]],64090:[[32626]],64091:[[32773]],64092:[[33261]],64093:[[33401]],64094:[[33401]],64095:[[33879]],64096:[[35088]],64097:[[35222]],64098:[[35585]],64099:[[35641]],64100:[[36051]],64101:[[36104]],64102:[[36790]],64103:[[36920]],64104:[[38627]],64105:[[38911]],64106:[[38971]],64107:[[24693]],64108:[[148206]],64109:[[33304]],64112:[[20006]],64113:[[20917]],64114:[[20840]],64115:[[20352]],64116:[[20805]],64117:[[20864]],64118:[[21191]],64119:[[21242]],64120:[[21917]],64121:[[21845]],64122:[[21913]],64123:[[21986]],64124:[[22618]],64125:[[22707]],64126:[[22852]],64127:[[22868]],64128:[[23138]],64129:[[23336]],64130:[[24274]],64131:[[24281]],64132:[[24425]],64133:[[24493]],64134:[[24792]],64135:[[24910]],64136:[[24840]],64137:[[24974]],64138:[[24928]],64139:[[25074]],64140:[[25140]],64141:[[25540]],64142:[[25628]],64143:[[25682]],64144:[[25942]],64145:[[26228]],64146:[[26391]],64147:[[26395]],64148:[[26454]],64149:[[27513]],64150:[[27578]],64151:[[27969]],64152:[[28379]],64153:[[28363]],64154:[[28450]],64155:[[28702]],64156:[[29038]],64157:[[30631]],64158:[[29237]],64159:[[29359]],64160:[[29482]],64161:[[29809]],64162:[[29958]],64163:[[30011]],64164:[[30237]],64165:[[30239]],64166:[[30410]],64167:[[30427]],64168:[[30452]],64169:[[30538]],64170:[[30528]],64171:[[30924]],64172:[[31409]],64173:[[31680]],64174:[[31867]],64175:[[32091]],64176:[[32244]],64177:[[32574]],64178:[[32773]],64179:[[33618]],64180:[[33775]],64181:[[34681]],64182:[[35137]],64183:[[35206]],64184:[[35222]],64185:[[35519]],64186:[[35576]],64187:[[35531]],64188:[[35585]],64189:[[35582]],64190:[[35565]],64191:[[35641]],64192:[[35722]],64193:[[36104]],64194:[[36664]],64195:[[36978]],64196:[[37273]],64197:[[37494]],64198:[[38524]],64199:[[38627]],64200:[[38742]],64201:[[38875]],64202:[[38911]],64203:[[38923]],64204:[[38971]],64205:[[39698]],64206:[[40860]],64207:[[141386]],64208:[[141380]],64209:[[144341]],64210:[[15261]],64211:[[16408]],64212:[[16441]],64213:[[152137]],64214:[[154832]],64215:[[163539]],64216:[[40771]],64217:[[40846]],195072:[[38953]],195073:[[169398]],195074:[[39138]],195075:[[19251]],195076:[[39209]],195077:[[39335]],195078:[[39362]],195079:[[39422]],195080:[[19406]],195081:[[170800]],195082:[[39698]],195083:[[40000]],195084:[[40189]],195085:[[19662]],195086:[[19693]],195087:[[40295]],195088:[[172238]],195089:[[19704]],195090:[[172293]],195091:[[172558]],195092:[[172689]],195093:[[40635]],195094:[[19798]],195095:[[40697]],195096:[[40702]],195097:[[40709]],195098:[[40719]],195099:[[40726]],195100:[[40763]],195101:[[173568]]},
+       64256:{64256:[[102,102],256],64257:[[102,105],256],64258:[[102,108],256],64259:[[102,102,105],256],64260:[[102,102,108],256],64261:[[383,116],256],64262:[[115,116],256],64275:[[1396,1398],256],64276:[[1396,1381],256],64277:[[1396,1387],256],64278:[[1406,1398],256],64279:[[1396,1389],256],64285:[[1497,1460],512],64286:[,26],64287:[[1522,1463],512],64288:[[1506],256],64289:[[1488],256],64290:[[1491],256],64291:[[1492],256],64292:[[1499],256],64293:[[1500],256],64294:[[1501],256],64295:[[1512],256],64296:[[1514],256],64297:[[43],256],64298:[[1513,1473],512],64299:[[1513,1474],512],64300:[[64329,1473],512],64301:[[64329,1474],512],64302:[[1488,1463],512],64303:[[1488,1464],512],64304:[[1488,1468],512],64305:[[1489,1468],512],64306:[[1490,1468],512],64307:[[1491,1468],512],64308:[[1492,1468],512],64309:[[1493,1468],512],64310:[[1494,1468],512],64312:[[1496,1468],512],64313:[[1497,1468],512],64314:[[1498,1468],512],64315:[[1499,1468],512],64316:[[1500,1468],512],64318:[[1502,1468],512],64320:[[1504,1468],512],64321:[[1505,1468],512],64323:[[1507,1468],512],64324:[[1508,1468],512],64326:[[1510,1468],512],64327:[[1511,1468],512],64328:[[1512,1468],512],64329:[[1513,1468],512],64330:[[1514,1468],512],64331:[[1493,1465],512],64332:[[1489,1471],512],64333:[[1499,1471],512],64334:[[1508,1471],512],64335:[[1488,1500],256],64336:[[1649],256],64337:[[1649],256],64338:[[1659],256],64339:[[1659],256],64340:[[1659],256],64341:[[1659],256],64342:[[1662],256],64343:[[1662],256],64344:[[1662],256],64345:[[1662],256],64346:[[1664],256],64347:[[1664],256],64348:[[1664],256],64349:[[1664],256],64350:[[1658],256],64351:[[1658],256],64352:[[1658],256],64353:[[1658],256],64354:[[1663],256],64355:[[1663],256],64356:[[1663],256],64357:[[1663],256],64358:[[1657],256],64359:[[1657],256],64360:[[1657],256],64361:[[1657],256],64362:[[1700],256],64363:[[1700],256],64364:[[1700],256],64365:[[1700],256],64366:[[1702],256],64367:[[1702],256],64368:[[1702],256],64369:[[1702],256],64370:[[1668],256],64371:[[1668],256],64372:[[1668],256],64373:[[1668],256],64374:[[1667],256],64375:[[1667],256],64376:[[1667],256],64377:[[1667],256],64378:[[1670],256],64379:[[1670],256],64380:[[1670],256],64381:[[1670],256],64382:[[1671],256],64383:[[1671],256],64384:[[1671],256],64385:[[1671],256],64386:[[1677],256],64387:[[1677],256],64388:[[1676],256],64389:[[1676],256],64390:[[1678],256],64391:[[1678],256],64392:[[1672],256],64393:[[1672],256],64394:[[1688],256],64395:[[1688],256],64396:[[1681],256],64397:[[1681],256],64398:[[1705],256],64399:[[1705],256],64400:[[1705],256],64401:[[1705],256],64402:[[1711],256],64403:[[1711],256],64404:[[1711],256],64405:[[1711],256],64406:[[1715],256],64407:[[1715],256],64408:[[1715],256],64409:[[1715],256],64410:[[1713],256],64411:[[1713],256],64412:[[1713],256],64413:[[1713],256],64414:[[1722],256],64415:[[1722],256],64416:[[1723],256],64417:[[1723],256],64418:[[1723],256],64419:[[1723],256],64420:[[1728],256],64421:[[1728],256],64422:[[1729],256],64423:[[1729],256],64424:[[1729],256],64425:[[1729],256],64426:[[1726],256],64427:[[1726],256],64428:[[1726],256],64429:[[1726],256],64430:[[1746],256],64431:[[1746],256],64432:[[1747],256],64433:[[1747],256],64467:[[1709],256],64468:[[1709],256],64469:[[1709],256],64470:[[1709],256],64471:[[1735],256],64472:[[1735],256],64473:[[1734],256],64474:[[1734],256],64475:[[1736],256],64476:[[1736],256],64477:[[1655],256],64478:[[1739],256],64479:[[1739],256],64480:[[1733],256],64481:[[1733],256],64482:[[1737],256],64483:[[1737],256],64484:[[1744],256],64485:[[1744],256],64486:[[1744],256],64487:[[1744],256],64488:[[1609],256],64489:[[1609],256],64490:[[1574,1575],256],64491:[[1574,1575],256],64492:[[1574,1749],256],64493:[[1574,1749],256],64494:[[1574,1608],256],64495:[[1574,1608],256],64496:[[1574,1735],256],64497:[[1574,1735],256],64498:[[1574,1734],256],64499:[[1574,1734],256],64500:[[1574,1736],256],64501:[[1574,1736],256],64502:[[1574,1744],256],64503:[[1574,1744],256],64504:[[1574,1744],256],64505:[[1574,1609],256],64506:[[1574,1609],256],64507:[[1574,1609],256],64508:[[1740],256],64509:[[1740],256],64510:[[1740],256],64511:[[1740],256]},
+       64512:{64512:[[1574,1580],256],64513:[[1574,1581],256],64514:[[1574,1605],256],64515:[[1574,1609],256],64516:[[1574,1610],256],64517:[[1576,1580],256],64518:[[1576,1581],256],64519:[[1576,1582],256],64520:[[1576,1605],256],64521:[[1576,1609],256],64522:[[1576,1610],256],64523:[[1578,1580],256],64524:[[1578,1581],256],64525:[[1578,1582],256],64526:[[1578,1605],256],64527:[[1578,1609],256],64528:[[1578,1610],256],64529:[[1579,1580],256],64530:[[1579,1605],256],64531:[[1579,1609],256],64532:[[1579,1610],256],64533:[[1580,1581],256],64534:[[1580,1605],256],64535:[[1581,1580],256],64536:[[1581,1605],256],64537:[[1582,1580],256],64538:[[1582,1581],256],64539:[[1582,1605],256],64540:[[1587,1580],256],64541:[[1587,1581],256],64542:[[1587,1582],256],64543:[[1587,1605],256],64544:[[1589,1581],256],64545:[[1589,1605],256],64546:[[1590,1580],256],64547:[[1590,1581],256],64548:[[1590,1582],256],64549:[[1590,1605],256],64550:[[1591,1581],256],64551:[[1591,1605],256],64552:[[1592,1605],256],64553:[[1593,1580],256],64554:[[1593,1605],256],64555:[[1594,1580],256],64556:[[1594,1605],256],64557:[[1601,1580],256],64558:[[1601,1581],256],64559:[[1601,1582],256],64560:[[1601,1605],256],64561:[[1601,1609],256],64562:[[1601,1610],256],64563:[[1602,1581],256],64564:[[1602,1605],256],64565:[[1602,1609],256],64566:[[1602,1610],256],64567:[[1603,1575],256],64568:[[1603,1580],256],64569:[[1603,1581],256],64570:[[1603,1582],256],64571:[[1603,1604],256],64572:[[1603,1605],256],64573:[[1603,1609],256],64574:[[1603,1610],256],64575:[[1604,1580],256],64576:[[1604,1581],256],64577:[[1604,1582],256],64578:[[1604,1605],256],64579:[[1604,1609],256],64580:[[1604,1610],256],64581:[[1605,1580],256],64582:[[1605,1581],256],64583:[[1605,1582],256],64584:[[1605,1605],256],64585:[[1605,1609],256],64586:[[1605,1610],256],64587:[[1606,1580],256],64588:[[1606,1581],256],64589:[[1606,1582],256],64590:[[1606,1605],256],64591:[[1606,1609],256],64592:[[1606,1610],256],64593:[[1607,1580],256],64594:[[1607,1605],256],64595:[[1607,1609],256],64596:[[1607,1610],256],64597:[[1610,1580],256],64598:[[1610,1581],256],64599:[[1610,1582],256],64600:[[1610,1605],256],64601:[[1610,1609],256],64602:[[1610,1610],256],64603:[[1584,1648],256],64604:[[1585,1648],256],64605:[[1609,1648],256],64606:[[32,1612,1617],256],64607:[[32,1613,1617],256],64608:[[32,1614,1617],256],64609:[[32,1615,1617],256],64610:[[32,1616,1617],256],64611:[[32,1617,1648],256],64612:[[1574,1585],256],64613:[[1574,1586],256],64614:[[1574,1605],256],64615:[[1574,1606],256],64616:[[1574,1609],256],64617:[[1574,1610],256],64618:[[1576,1585],256],64619:[[1576,1586],256],64620:[[1576,1605],256],64621:[[1576,1606],256],64622:[[1576,1609],256],64623:[[1576,1610],256],64624:[[1578,1585],256],64625:[[1578,1586],256],64626:[[1578,1605],256],64627:[[1578,1606],256],64628:[[1578,1609],256],64629:[[1578,1610],256],64630:[[1579,1585],256],64631:[[1579,1586],256],64632:[[1579,1605],256],64633:[[1579,1606],256],64634:[[1579,1609],256],64635:[[1579,1610],256],64636:[[1601,1609],256],64637:[[1601,1610],256],64638:[[1602,1609],256],64639:[[1602,1610],256],64640:[[1603,1575],256],64641:[[1603,1604],256],64642:[[1603,1605],256],64643:[[1603,1609],256],64644:[[1603,1610],256],64645:[[1604,1605],256],64646:[[1604,1609],256],64647:[[1604,1610],256],64648:[[1605,1575],256],64649:[[1605,1605],256],64650:[[1606,1585],256],64651:[[1606,1586],256],64652:[[1606,1605],256],64653:[[1606,1606],256],64654:[[1606,1609],256],64655:[[1606,1610],256],64656:[[1609,1648],256],64657:[[1610,1585],256],64658:[[1610,1586],256],64659:[[1610,1605],256],64660:[[1610,1606],256],64661:[[1610,1609],256],64662:[[1610,1610],256],64663:[[1574,1580],256],64664:[[1574,1581],256],64665:[[1574,1582],256],64666:[[1574,1605],256],64667:[[1574,1607],256],64668:[[1576,1580],256],64669:[[1576,1581],256],64670:[[1576,1582],256],64671:[[1576,1605],256],64672:[[1576,1607],256],64673:[[1578,1580],256],64674:[[1578,1581],256],64675:[[1578,1582],256],64676:[[1578,1605],256],64677:[[1578,1607],256],64678:[[1579,1605],256],64679:[[1580,1581],256],64680:[[1580,1605],256],64681:[[1581,1580],256],64682:[[1581,1605],256],64683:[[1582,1580],256],64684:[[1582,1605],256],64685:[[1587,1580],256],64686:[[1587,1581],256],64687:[[1587,1582],256],64688:[[1587,1605],256],64689:[[1589,1581],256],64690:[[1589,1582],256],64691:[[1589,1605],256],64692:[[1590,1580],256],64693:[[1590,1581],256],64694:[[1590,1582],256],64695:[[1590,1605],256],64696:[[1591,1581],256],64697:[[1592,1605],256],64698:[[1593,1580],256],64699:[[1593,1605],256],64700:[[1594,1580],256],64701:[[1594,1605],256],64702:[[1601,1580],256],64703:[[1601,1581],256],64704:[[1601,1582],256],64705:[[1601,1605],256],64706:[[1602,1581],256],64707:[[1602,1605],256],64708:[[1603,1580],256],64709:[[1603,1581],256],64710:[[1603,1582],256],64711:[[1603,1604],256],64712:[[1603,1605],256],64713:[[1604,1580],256],64714:[[1604,1581],256],64715:[[1604,1582],256],64716:[[1604,1605],256],64717:[[1604,1607],256],64718:[[1605,1580],256],64719:[[1605,1581],256],64720:[[1605,1582],256],64721:[[1605,1605],256],64722:[[1606,1580],256],64723:[[1606,1581],256],64724:[[1606,1582],256],64725:[[1606,1605],256],64726:[[1606,1607],256],64727:[[1607,1580],256],64728:[[1607,1605],256],64729:[[1607,1648],256],64730:[[1610,1580],256],64731:[[1610,1581],256],64732:[[1610,1582],256],64733:[[1610,1605],256],64734:[[1610,1607],256],64735:[[1574,1605],256],64736:[[1574,1607],256],64737:[[1576,1605],256],64738:[[1576,1607],256],64739:[[1578,1605],256],64740:[[1578,1607],256],64741:[[1579,1605],256],64742:[[1579,1607],256],64743:[[1587,1605],256],64744:[[1587,1607],256],64745:[[1588,1605],256],64746:[[1588,1607],256],64747:[[1603,1604],256],64748:[[1603,1605],256],64749:[[1604,1605],256],64750:[[1606,1605],256],64751:[[1606,1607],256],64752:[[1610,1605],256],64753:[[1610,1607],256],64754:[[1600,1614,1617],256],64755:[[1600,1615,1617],256],64756:[[1600,1616,1617],256],64757:[[1591,1609],256],64758:[[1591,1610],256],64759:[[1593,1609],256],64760:[[1593,1610],256],64761:[[1594,1609],256],64762:[[1594,1610],256],64763:[[1587,1609],256],64764:[[1587,1610],256],64765:[[1588,1609],256],64766:[[1588,1610],256],64767:[[1581,1609],256]},
+       64768:{64768:[[1581,1610],256],64769:[[1580,1609],256],64770:[[1580,1610],256],64771:[[1582,1609],256],64772:[[1582,1610],256],64773:[[1589,1609],256],64774:[[1589,1610],256],64775:[[1590,1609],256],64776:[[1590,1610],256],64777:[[1588,1580],256],64778:[[1588,1581],256],64779:[[1588,1582],256],64780:[[1588,1605],256],64781:[[1588,1585],256],64782:[[1587,1585],256],64783:[[1589,1585],256],64784:[[1590,1585],256],64785:[[1591,1609],256],64786:[[1591,1610],256],64787:[[1593,1609],256],64788:[[1593,1610],256],64789:[[1594,1609],256],64790:[[1594,1610],256],64791:[[1587,1609],256],64792:[[1587,1610],256],64793:[[1588,1609],256],64794:[[1588,1610],256],64795:[[1581,1609],256],64796:[[1581,1610],256],64797:[[1580,1609],256],64798:[[1580,1610],256],64799:[[1582,1609],256],64800:[[1582,1610],256],64801:[[1589,1609],256],64802:[[1589,1610],256],64803:[[1590,1609],256],64804:[[1590,1610],256],64805:[[1588,1580],256],64806:[[1588,1581],256],64807:[[1588,1582],256],64808:[[1588,1605],256],64809:[[1588,1585],256],64810:[[1587,1585],256],64811:[[1589,1585],256],64812:[[1590,1585],256],64813:[[1588,1580],256],64814:[[1588,1581],256],64815:[[1588,1582],256],64816:[[1588,1605],256],64817:[[1587,1607],256],64818:[[1588,1607],256],64819:[[1591,1605],256],64820:[[1587,1580],256],64821:[[1587,1581],256],64822:[[1587,1582],256],64823:[[1588,1580],256],64824:[[1588,1581],256],64825:[[1588,1582],256],64826:[[1591,1605],256],64827:[[1592,1605],256],64828:[[1575,1611],256],64829:[[1575,1611],256],64848:[[1578,1580,1605],256],64849:[[1578,1581,1580],256],64850:[[1578,1581,1580],256],64851:[[1578,1581,1605],256],64852:[[1578,1582,1605],256],64853:[[1578,1605,1580],256],64854:[[1578,1605,1581],256],64855:[[1578,1605,1582],256],64856:[[1580,1605,1581],256],64857:[[1580,1605,1581],256],64858:[[1581,1605,1610],256],64859:[[1581,1605,1609],256],64860:[[1587,1581,1580],256],64861:[[1587,1580,1581],256],64862:[[1587,1580,1609],256],64863:[[1587,1605,1581],256],64864:[[1587,1605,1581],256],64865:[[1587,1605,1580],256],64866:[[1587,1605,1605],256],64867:[[1587,1605,1605],256],64868:[[1589,1581,1581],256],64869:[[1589,1581,1581],256],64870:[[1589,1605,1605],256],64871:[[1588,1581,1605],256],64872:[[1588,1581,1605],256],64873:[[1588,1580,1610],256],64874:[[1588,1605,1582],256],64875:[[1588,1605,1582],256],64876:[[1588,1605,1605],256],64877:[[1588,1605,1605],256],64878:[[1590,1581,1609],256],64879:[[1590,1582,1605],256],64880:[[1590,1582,1605],256],64881:[[1591,1605,1581],256],64882:[[1591,1605,1581],256],64883:[[1591,1605,1605],256],64884:[[1591,1605,1610],256],64885:[[1593,1580,1605],256],64886:[[1593,1605,1605],256],64887:[[1593,1605,1605],256],64888:[[1593,1605,1609],256],64889:[[1594,1605,1605],256],64890:[[1594,1605,1610],256],64891:[[1594,1605,1609],256],64892:[[1601,1582,1605],256],64893:[[1601,1582,1605],256],64894:[[1602,1605,1581],256],64895:[[1602,1605,1605],256],64896:[[1604,1581,1605],256],64897:[[1604,1581,1610],256],64898:[[1604,1581,1609],256],64899:[[1604,1580,1580],256],64900:[[1604,1580,1580],256],64901:[[1604,1582,1605],256],64902:[[1604,1582,1605],256],64903:[[1604,1605,1581],256],64904:[[1604,1605,1581],256],64905:[[1605,1581,1580],256],64906:[[1605,1581,1605],256],64907:[[1605,1581,1610],256],64908:[[1605,1580,1581],256],64909:[[1605,1580,1605],256],64910:[[1605,1582,1580],256],64911:[[1605,1582,1605],256],64914:[[1605,1580,1582],256],64915:[[1607,1605,1580],256],64916:[[1607,1605,1605],256],64917:[[1606,1581,1605],256],64918:[[1606,1581,1609],256],64919:[[1606,1580,1605],256],64920:[[1606,1580,1605],256],64921:[[1606,1580,1609],256],64922:[[1606,1605,1610],256],64923:[[1606,1605,1609],256],64924:[[1610,1605,1605],256],64925:[[1610,1605,1605],256],64926:[[1576,1582,1610],256],64927:[[1578,1580,1610],256],64928:[[1578,1580,1609],256],64929:[[1578,1582,1610],256],64930:[[1578,1582,1609],256],64931:[[1578,1605,1610],256],64932:[[1578,1605,1609],256],64933:[[1580,1605,1610],256],64934:[[1580,1581,1609],256],64935:[[1580,1605,1609],256],64936:[[1587,1582,1609],256],64937:[[1589,1581,1610],256],64938:[[1588,1581,1610],256],64939:[[1590,1581,1610],256],64940:[[1604,1580,1610],256],64941:[[1604,1605,1610],256],64942:[[1610,1581,1610],256],64943:[[1610,1580,1610],256],64944:[[1610,1605,1610],256],64945:[[1605,1605,1610],256],64946:[[1602,1605,1610],256],64947:[[1606,1581,1610],256],64948:[[1602,1605,1581],256],64949:[[1604,1581,1605],256],64950:[[1593,1605,1610],256],64951:[[1603,1605,1610],256],64952:[[1606,1580,1581],256],64953:[[1605,1582,1610],256],64954:[[1604,1580,1605],256],64955:[[1603,1605,1605],256],64956:[[1604,1580,1605],256],64957:[[1606,1580,1581],256],64958:[[1580,1581,1610],256],64959:[[1581,1580,1610],256],64960:[[1605,1580,1610],256],64961:[[1601,1605,1610],256],64962:[[1576,1581,1610],256],64963:[[1603,1605,1605],256],64964:[[1593,1580,1605],256],64965:[[1589,1605,1605],256],64966:[[1587,1582,1610],256],64967:[[1606,1580,1610],256],65008:[[1589,1604,1746],256],65009:[[1602,1604,1746],256],65010:[[1575,1604,1604,1607],256],65011:[[1575,1603,1576,1585],256],65012:[[1605,1581,1605,1583],256],65013:[[1589,1604,1593,1605],256],65014:[[1585,1587,1608,1604],256],65015:[[1593,1604,1610,1607],256],65016:[[1608,1587,1604,1605],256],65017:[[1589,1604,1609],256],65018:[[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605],256],65019:[[1580,1604,32,1580,1604,1575,1604,1607],256],65020:[[1585,1740,1575,1604],256]},
+       65024:{65040:[[44],256],65041:[[12289],256],65042:[[12290],256],65043:[[58],256],65044:[[59],256],65045:[[33],256],65046:[[63],256],65047:[[12310],256],65048:[[12311],256],65049:[[8230],256],65056:[,230],65057:[,230],65058:[,230],65059:[,230],65060:[,230],65061:[,230],65062:[,230],65072:[[8229],256],65073:[[8212],256],65074:[[8211],256],65075:[[95],256],65076:[[95],256],65077:[[40],256],65078:[[41],256],65079:[[123],256],65080:[[125],256],65081:[[12308],256],65082:[[12309],256],65083:[[12304],256],65084:[[12305],256],65085:[[12298],256],65086:[[12299],256],65087:[[12296],256],65088:[[12297],256],65089:[[12300],256],65090:[[12301],256],65091:[[12302],256],65092:[[12303],256],65095:[[91],256],65096:[[93],256],65097:[[8254],256],65098:[[8254],256],65099:[[8254],256],65100:[[8254],256],65101:[[95],256],65102:[[95],256],65103:[[95],256],65104:[[44],256],65105:[[12289],256],65106:[[46],256],65108:[[59],256],65109:[[58],256],65110:[[63],256],65111:[[33],256],65112:[[8212],256],65113:[[40],256],65114:[[41],256],65115:[[123],256],65116:[[125],256],65117:[[12308],256],65118:[[12309],256],65119:[[35],256],65120:[[38],256],65121:[[42],256],65122:[[43],256],65123:[[45],256],65124:[[60],256],65125:[[62],256],65126:[[61],256],65128:[[92],256],65129:[[36],256],65130:[[37],256],65131:[[64],256],65136:[[32,1611],256],65137:[[1600,1611],256],65138:[[32,1612],256],65140:[[32,1613],256],65142:[[32,1614],256],65143:[[1600,1614],256],65144:[[32,1615],256],65145:[[1600,1615],256],65146:[[32,1616],256],65147:[[1600,1616],256],65148:[[32,1617],256],65149:[[1600,1617],256],65150:[[32,1618],256],65151:[[1600,1618],256],65152:[[1569],256],65153:[[1570],256],65154:[[1570],256],65155:[[1571],256],65156:[[1571],256],65157:[[1572],256],65158:[[1572],256],65159:[[1573],256],65160:[[1573],256],65161:[[1574],256],65162:[[1574],256],65163:[[1574],256],65164:[[1574],256],65165:[[1575],256],65166:[[1575],256],65167:[[1576],256],65168:[[1576],256],65169:[[1576],256],65170:[[1576],256],65171:[[1577],256],65172:[[1577],256],65173:[[1578],256],65174:[[1578],256],65175:[[1578],256],65176:[[1578],256],65177:[[1579],256],65178:[[1579],256],65179:[[1579],256],65180:[[1579],256],65181:[[1580],256],65182:[[1580],256],65183:[[1580],256],65184:[[1580],256],65185:[[1581],256],65186:[[1581],256],65187:[[1581],256],65188:[[1581],256],65189:[[1582],256],65190:[[1582],256],65191:[[1582],256],65192:[[1582],256],65193:[[1583],256],65194:[[1583],256],65195:[[1584],256],65196:[[1584],256],65197:[[1585],256],65198:[[1585],256],65199:[[1586],256],65200:[[1586],256],65201:[[1587],256],65202:[[1587],256],65203:[[1587],256],65204:[[1587],256],65205:[[1588],256],65206:[[1588],256],65207:[[1588],256],65208:[[1588],256],65209:[[1589],256],65210:[[1589],256],65211:[[1589],256],65212:[[1589],256],65213:[[1590],256],65214:[[1590],256],65215:[[1590],256],65216:[[1590],256],65217:[[1591],256],65218:[[1591],256],65219:[[1591],256],65220:[[1591],256],65221:[[1592],256],65222:[[1592],256],65223:[[1592],256],65224:[[1592],256],65225:[[1593],256],65226:[[1593],256],65227:[[1593],256],65228:[[1593],256],65229:[[1594],256],65230:[[1594],256],65231:[[1594],256],65232:[[1594],256],65233:[[1601],256],65234:[[1601],256],65235:[[1601],256],65236:[[1601],256],65237:[[1602],256],65238:[[1602],256],65239:[[1602],256],65240:[[1602],256],65241:[[1603],256],65242:[[1603],256],65243:[[1603],256],65244:[[1603],256],65245:[[1604],256],65246:[[1604],256],65247:[[1604],256],65248:[[1604],256],65249:[[1605],256],65250:[[1605],256],65251:[[1605],256],65252:[[1605],256],65253:[[1606],256],65254:[[1606],256],65255:[[1606],256],65256:[[1606],256],65257:[[1607],256],65258:[[1607],256],65259:[[1607],256],65260:[[1607],256],65261:[[1608],256],65262:[[1608],256],65263:[[1609],256],65264:[[1609],256],65265:[[1610],256],65266:[[1610],256],65267:[[1610],256],65268:[[1610],256],65269:[[1604,1570],256],65270:[[1604,1570],256],65271:[[1604,1571],256],65272:[[1604,1571],256],65273:[[1604,1573],256],65274:[[1604,1573],256],65275:[[1604,1575],256],65276:[[1604,1575],256]},
+       65280:{65281:[[33],256],65282:[[34],256],65283:[[35],256],65284:[[36],256],65285:[[37],256],65286:[[38],256],65287:[[39],256],65288:[[40],256],65289:[[41],256],65290:[[42],256],65291:[[43],256],65292:[[44],256],65293:[[45],256],65294:[[46],256],65295:[[47],256],65296:[[48],256],65297:[[49],256],65298:[[50],256],65299:[[51],256],65300:[[52],256],65301:[[53],256],65302:[[54],256],65303:[[55],256],65304:[[56],256],65305:[[57],256],65306:[[58],256],65307:[[59],256],65308:[[60],256],65309:[[61],256],65310:[[62],256],65311:[[63],256],65312:[[64],256],65313:[[65],256],65314:[[66],256],65315:[[67],256],65316:[[68],256],65317:[[69],256],65318:[[70],256],65319:[[71],256],65320:[[72],256],65321:[[73],256],65322:[[74],256],65323:[[75],256],65324:[[76],256],65325:[[77],256],65326:[[78],256],65327:[[79],256],65328:[[80],256],65329:[[81],256],65330:[[82],256],65331:[[83],256],65332:[[84],256],65333:[[85],256],65334:[[86],256],65335:[[87],256],65336:[[88],256],65337:[[89],256],65338:[[90],256],65339:[[91],256],65340:[[92],256],65341:[[93],256],65342:[[94],256],65343:[[95],256],65344:[[96],256],65345:[[97],256],65346:[[98],256],65347:[[99],256],65348:[[100],256],65349:[[101],256],65350:[[102],256],65351:[[103],256],65352:[[104],256],65353:[[105],256],65354:[[106],256],65355:[[107],256],65356:[[108],256],65357:[[109],256],65358:[[110],256],65359:[[111],256],65360:[[112],256],65361:[[113],256],65362:[[114],256],65363:[[115],256],65364:[[116],256],65365:[[117],256],65366:[[118],256],65367:[[119],256],65368:[[120],256],65369:[[121],256],65370:[[122],256],65371:[[123],256],65372:[[124],256],65373:[[125],256],65374:[[126],256],65375:[[10629],256],65376:[[10630],256],65377:[[12290],256],65378:[[12300],256],65379:[[12301],256],65380:[[12289],256],65381:[[12539],256],65382:[[12530],256],65383:[[12449],256],65384:[[12451],256],65385:[[12453],256],65386:[[12455],256],65387:[[12457],256],65388:[[12515],256],65389:[[12517],256],65390:[[12519],256],65391:[[12483],256],65392:[[12540],256],65393:[[12450],256],65394:[[12452],256],65395:[[12454],256],65396:[[12456],256],65397:[[12458],256],65398:[[12459],256],65399:[[12461],256],65400:[[12463],256],65401:[[12465],256],65402:[[12467],256],65403:[[12469],256],65404:[[12471],256],65405:[[12473],256],65406:[[12475],256],65407:[[12477],256],65408:[[12479],256],65409:[[12481],256],65410:[[12484],256],65411:[[12486],256],65412:[[12488],256],65413:[[12490],256],65414:[[12491],256],65415:[[12492],256],65416:[[12493],256],65417:[[12494],256],65418:[[12495],256],65419:[[12498],256],65420:[[12501],256],65421:[[12504],256],65422:[[12507],256],65423:[[12510],256],65424:[[12511],256],65425:[[12512],256],65426:[[12513],256],65427:[[12514],256],65428:[[12516],256],65429:[[12518],256],65430:[[12520],256],65431:[[12521],256],65432:[[12522],256],65433:[[12523],256],65434:[[12524],256],65435:[[12525],256],65436:[[12527],256],65437:[[12531],256],65438:[[12441],256],65439:[[12442],256],65440:[[12644],256],65441:[[12593],256],65442:[[12594],256],65443:[[12595],256],65444:[[12596],256],65445:[[12597],256],65446:[[12598],256],65447:[[12599],256],65448:[[12600],256],65449:[[12601],256],65450:[[12602],256],65451:[[12603],256],65452:[[12604],256],65453:[[12605],256],65454:[[12606],256],65455:[[12607],256],65456:[[12608],256],65457:[[12609],256],65458:[[12610],256],65459:[[12611],256],65460:[[12612],256],65461:[[12613],256],65462:[[12614],256],65463:[[12615],256],65464:[[12616],256],65465:[[12617],256],65466:[[12618],256],65467:[[12619],256],65468:[[12620],256],65469:[[12621],256],65470:[[12622],256],65474:[[12623],256],65475:[[12624],256],65476:[[12625],256],65477:[[12626],256],65478:[[12627],256],65479:[[12628],256],65482:[[12629],256],65483:[[12630],256],65484:[[12631],256],65485:[[12632],256],65486:[[12633],256],65487:[[12634],256],65490:[[12635],256],65491:[[12636],256],65492:[[12637],256],65493:[[12638],256],65494:[[12639],256],65495:[[12640],256],65498:[[12641],256],65499:[[12642],256],65500:[[12643],256],65504:[[162],256],65505:[[163],256],65506:[[172],256],65507:[[175],256],65508:[[166],256],65509:[[165],256],65510:[[8361],256],65512:[[9474],256],65513:[[8592],256],65514:[[8593],256],65515:[[8594],256],65516:[[8595],256],65517:[[9632],256],65518:[[9675],256]}
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/implement.js
new file mode 100644 (file)
index 0000000..cfc710e
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(String.prototype, 'normalize',
+               { value: require('./shim'), configurable: true, enumerable: false,
+                       writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/index.js
new file mode 100644 (file)
index 0000000..619b096
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? String.prototype.normalize
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/is-implemented.js
new file mode 100644 (file)
index 0000000..67c8d8d
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var str = 'æøåäüö';
+
+module.exports = function () {
+       if (typeof str.normalize !== 'function') return false;
+       return str.normalize('NFKD') === 'æøåäüö';
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/shim.js
new file mode 100644 (file)
index 0000000..a379989
--- /dev/null
@@ -0,0 +1,289 @@
+// Taken from: https://github.com/walling/unorm/blob/master/lib/unorm.js
+
+/*
+       * UnicodeNormalizer 1.0.0
+       * Copyright (c) 2008 Matsuza
+       * Dual licensed under the MIT (MIT-LICENSE.txt) and
+       * GPL (GPL-LICENSE.txt) licenses.
+       * $Date: 2008-06-05 16:44:17 +0200 (Thu, 05 Jun 2008) $
+       * $Rev: 13309 $
+*/
+
+'use strict';
+
+var primitiveSet = require('../../../object/primitive-set')
+  , validValue   = require('../../../object/valid-value')
+  , data         = require('./_data')
+
+  , floor = Math.floor
+  , forms = primitiveSet('NFC', 'NFD', 'NFKC', 'NFKD')
+
+  , DEFAULT_FEATURE = [null, 0, {}], CACHE_THRESHOLD = 10, SBase = 0xAC00
+  , LBase = 0x1100, VBase = 0x1161, TBase = 0x11A7, LCount = 19, VCount = 21
+  , TCount = 28, NCount = VCount * TCount, SCount = LCount * NCount
+  , UChar, cache = {}, cacheCounter = [], i, fromCache, fromData, fromCpOnly
+  , fromRuleBasedJamo, fromCpFilter, strategies, UCharIterator
+  , RecursDecompIterator, DecompIterator, CompIterator, createIterator
+  , normalize;
+
+UChar = function (cp, feature) {
+       this.codepoint = cp;
+       this.feature = feature;
+};
+
+// Strategies
+for (i = 0; i <= 0xFF; ++i) cacheCounter[i] = 0;
+
+fromCache = function (next, cp, needFeature) {
+       var ret = cache[cp];
+       if (!ret) {
+               ret = next(cp, needFeature);
+               if (!!ret.feature && ++cacheCounter[(cp >> 8) & 0xFF] > CACHE_THRESHOLD) {
+                       cache[cp] = ret;
+               }
+       }
+       return ret;
+};
+
+fromData = function (next, cp, needFeature) {
+       var hash = cp & 0xFF00, dunit = UChar.udata[hash] || {}, f = dunit[cp];
+       return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);
+};
+fromCpOnly = function (next, cp, needFeature) {
+       return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);
+};
+
+fromRuleBasedJamo = function (next, cp, needFeature) {
+       var c, base, i, arr, SIndex, TIndex, feature, j;
+       if (cp < LBase || (LBase + LCount <= cp && cp < SBase) ||
+                       (SBase + SCount < cp)) {
+               return next(cp, needFeature);
+       }
+       if (LBase <= cp && cp < LBase + LCount) {
+               c = {};
+               base = (cp - LBase) * VCount;
+               for (i = 0; i < VCount; ++i) {
+                       c[VBase + i] = SBase + TCount * (i + base);
+               }
+               arr = new Array(3);
+               arr[2] = c;
+               return new UChar(cp, arr);
+       }
+
+       SIndex = cp - SBase;
+       TIndex = SIndex % TCount;
+       feature = [];
+       if (TIndex !== 0) {
+               feature[0] = [SBase + SIndex - TIndex, TBase + TIndex];
+       } else {
+               feature[0] = [LBase + floor(SIndex / NCount), VBase +
+                       floor((SIndex % NCount) / TCount)];
+               feature[2] = {};
+               for (j = 1; j < TCount; ++j) {
+                       feature[2][TBase + j] = cp + j;
+               }
+       }
+       return new UChar(cp, feature);
+};
+
+fromCpFilter = function (next, cp, needFeature) {
+       return (cp < 60) || ((13311 < cp) && (cp < 42607))
+               ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);
+};
+
+strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];
+
+UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {
+       return function (cp, needFeature) { return strategy(next, cp, needFeature); };
+}, null);
+
+UChar.isHighSurrogate = function (cp) { return cp >= 0xD800 && cp <= 0xDBFF; };
+UChar.isLowSurrogate = function (cp) { return cp >= 0xDC00 && cp <= 0xDFFF; };
+
+UChar.prototype.prepFeature = function () {
+       if (!this.feature) {
+               this.feature = UChar.fromCharCode(this.codepoint, true).feature;
+       }
+};
+
+UChar.prototype.toString = function () {
+       var x;
+       if (this.codepoint < 0x10000) return String.fromCharCode(this.codepoint);
+       x = this.codepoint - 0x10000;
+       return String.fromCharCode(floor(x / 0x400) + 0xD800, x % 0x400 + 0xDC00);
+};
+
+UChar.prototype.getDecomp = function () {
+       this.prepFeature();
+       return this.feature[0] || null;
+};
+
+UChar.prototype.isCompatibility = function () {
+       this.prepFeature();
+       return !!this.feature[1] && (this.feature[1] & (1 << 8));
+};
+UChar.prototype.isExclude = function () {
+       this.prepFeature();
+       return !!this.feature[1] && (this.feature[1] & (1 << 9));
+};
+UChar.prototype.getCanonicalClass = function () {
+       this.prepFeature();
+       return !!this.feature[1] ? (this.feature[1] & 0xff) : 0;
+};
+UChar.prototype.getComposite = function (following) {
+       var cp;
+       this.prepFeature();
+       if (!this.feature[2]) return null;
+       cp = this.feature[2][following.codepoint];
+       return cp ? UChar.fromCharCode(cp) : null;
+};
+
+UCharIterator = function (str) {
+       this.str = str;
+       this.cursor = 0;
+};
+UCharIterator.prototype.next = function () {
+       if (!!this.str && this.cursor < this.str.length) {
+               var cp = this.str.charCodeAt(this.cursor++), d;
+               if (UChar.isHighSurrogate(cp) && this.cursor < this.str.length &&
+                               UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))) {
+                       cp = (cp - 0xD800) * 0x400 + (d - 0xDC00) + 0x10000;
+                       ++this.cursor;
+               }
+               return UChar.fromCharCode(cp);
+       }
+       this.str = null;
+       return null;
+};
+
+RecursDecompIterator = function (it, cano) {
+       this.it = it;
+       this.canonical = cano;
+       this.resBuf = [];
+};
+
+RecursDecompIterator.prototype.next = function () {
+       var recursiveDecomp, uchar;
+       recursiveDecomp = function (cano, uchar) {
+               var decomp = uchar.getDecomp(), ret, i, a, j;
+               if (!!decomp && !(cano && uchar.isCompatibility())) {
+                       ret = [];
+                       for (i = 0; i < decomp.length; ++i) {
+                               a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));
+                               //ret.concat(a); //<-why does not this work?
+                               //following block is a workaround.
+                               for (j = 0; j < a.length; ++j) ret.push(a[j]);
+                       }
+                       return ret;
+               }
+               return [uchar];
+       };
+       if (this.resBuf.length === 0) {
+               uchar = this.it.next();
+               if (!uchar) return null;
+               this.resBuf = recursiveDecomp(this.canonical, uchar);
+       }
+       return this.resBuf.shift();
+};
+
+DecompIterator = function (it) {
+       this.it = it;
+       this.resBuf = [];
+};
+
+DecompIterator.prototype.next = function () {
+       var cc, uchar, inspt, uchar2, cc2;
+       if (this.resBuf.length === 0) {
+               do {
+                       uchar = this.it.next();
+                       if (!uchar) break;
+                       cc = uchar.getCanonicalClass();
+                       inspt = this.resBuf.length;
+                       if (cc !== 0) {
+                               for (inspt; inspt > 0; --inspt) {
+                                       uchar2 = this.resBuf[inspt - 1];
+                                       cc2 = uchar2.getCanonicalClass();
+                                       if (cc2 <= cc) break;
+                               }
+                       }
+                       this.resBuf.splice(inspt, 0, uchar);
+               } while (cc !== 0);
+       }
+       return this.resBuf.shift();
+};
+
+CompIterator = function (it) {
+       this.it = it;
+       this.procBuf = [];
+       this.resBuf = [];
+       this.lastClass = null;
+};
+
+CompIterator.prototype.next = function () {
+       var uchar, starter, composite, cc;
+       while (this.resBuf.length === 0) {
+               uchar = this.it.next();
+               if (!uchar) {
+                       this.resBuf = this.procBuf;
+                       this.procBuf = [];
+                       break;
+               }
+               if (this.procBuf.length === 0) {
+                       this.lastClass = uchar.getCanonicalClass();
+                       this.procBuf.push(uchar);
+               } else {
+                       starter = this.procBuf[0];
+                       composite = starter.getComposite(uchar);
+                       cc = uchar.getCanonicalClass();
+                       if (!!composite && (this.lastClass < cc || this.lastClass === 0)) {
+                               this.procBuf[0] = composite;
+                       } else {
+                               if (cc === 0) {
+                                       this.resBuf = this.procBuf;
+                                       this.procBuf = [];
+                               }
+                               this.lastClass = cc;
+                               this.procBuf.push(uchar);
+                       }
+               }
+       }
+       return this.resBuf.shift();
+};
+
+createIterator = function (mode, str) {
+       switch (mode) {
+       case "NFD":
+               return new DecompIterator(
+                       new RecursDecompIterator(new UCharIterator(str), true)
+               );
+       case "NFKD":
+               return new DecompIterator(
+                       new RecursDecompIterator(new UCharIterator(str), false)
+               );
+       case "NFC":
+               return new CompIterator(new DecompIterator(
+                       new RecursDecompIterator(new UCharIterator(str), true)
+               ));
+       case "NFKC":
+               return new CompIterator(new DecompIterator(
+                       new RecursDecompIterator(new UCharIterator(str), false)
+               ));
+       }
+       throw mode + " is invalid";
+};
+normalize = function (mode, str) {
+       var it = createIterator(mode, str), ret = "", uchar;
+       while (!!(uchar = it.next())) ret += uchar.toString();
+       return ret;
+};
+
+/* Unicode data */
+UChar.udata =  data;
+
+module.exports = function (/*form*/) {
+       var str = String(validValue(this)), form = arguments[0];
+       if (form === undefined) form = 'NFC';
+       else form = String(form);
+       if (!forms[form]) throw new RangeError('Invalid normalization form: ' + form);
+       return normalize(form, str);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/pad.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/pad.js
new file mode 100644 (file)
index 0000000..f227f23
--- /dev/null
@@ -0,0 +1,18 @@
+'use strict';
+
+var toInteger = require('../../number/to-integer')
+  , value     = require('../../object/valid-value')
+  , repeat    = require('./repeat')
+
+  , abs = Math.abs, max = Math.max;
+
+module.exports = function (fill/*, length*/) {
+       var self = String(value(this))
+         , sLength = self.length
+         , length = arguments[1];
+
+       length = isNaN(length) ? 1 : toInteger(length);
+       fill = repeat.call(String(fill), abs(length));
+       if (length >= 0) return fill.slice(0, max(0, length - sLength)) + self;
+       return self + (((sLength + length) >= 0) ? '' : fill.slice(length + sLength));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/plain-replace-all.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/plain-replace-all.js
new file mode 100644 (file)
index 0000000..678b1cb
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var value = require('../../object/valid-value');
+
+module.exports = function (search, replace) {
+       var index, pos = 0, str = String(value(this)), sl, rl;
+       search = String(search);
+       replace = String(replace);
+       sl = search.length;
+       rl = replace.length;
+       while ((index = str.indexOf(search, pos)) !== -1) {
+               str = str.slice(0, index) + replace + str.slice(index + sl);
+               pos = index + rl;
+       }
+       return str;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/plain-replace.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/plain-replace.js
new file mode 100644 (file)
index 0000000..24ce16d
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+var indexOf = String.prototype.indexOf, slice = String.prototype.slice;
+
+module.exports = function (search, replace) {
+       var index = indexOf.call(this, search);
+       if (index === -1) return String(this);
+       return slice.call(this, 0, index) + replace +
+               slice.call(this, index + String(search).length);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/implement.js
new file mode 100644 (file)
index 0000000..4c39b9f
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(String.prototype, 'repeat',
+               { value: require('./shim'), configurable: true, enumerable: false,
+                       writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/index.js
new file mode 100644 (file)
index 0000000..15a800e
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? String.prototype.repeat
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/is-implemented.js
new file mode 100644 (file)
index 0000000..f7b8750
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var str = 'foo';
+
+module.exports = function () {
+       if (typeof str.repeat !== 'function') return false;
+       return (str.repeat(2) === 'foofoo');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/shim.js
new file mode 100644 (file)
index 0000000..0a3928b
--- /dev/null
@@ -0,0 +1,22 @@
+// Thanks: http://www.2ality.com/2014/01/efficient-string-repeat.html
+
+'use strict';
+
+var value     = require('../../../object/valid-value')
+  , toInteger = require('../../../number/to-integer');
+
+module.exports = function (count) {
+       var str = String(value(this)), result;
+       count = toInteger(count);
+       if (count < 0) throw new RangeError("Count must be >= 0");
+       if (!isFinite(count)) throw new RangeError("Count must be < ∞");
+       result = '';
+       if (!count) return result;
+       while (true) {
+               if (count & 1) result += str;
+               count >>>= 1;
+               if (count <= 0) break;
+               str += str;
+       }
+       return result;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/implement.js
new file mode 100644 (file)
index 0000000..d4f1eaf
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(String.prototype, 'startsWith',
+               { value: require('./shim'), configurable: true, enumerable: false,
+                       writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/index.js
new file mode 100644 (file)
index 0000000..ec66a7c
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? String.prototype.startsWith
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/is-implemented.js
new file mode 100644 (file)
index 0000000..a0556f1
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var str = 'razdwatrzy';
+
+module.exports = function () {
+       if (typeof str.startsWith !== 'function') return false;
+       return ((str.startsWith('trzy') === false) &&
+               (str.startsWith('raz') === true));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/shim.js
new file mode 100644 (file)
index 0000000..aa5aaf4
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+var value     = require('../../../object/valid-value')
+  , toInteger = require('../../../number/to-integer')
+
+  , max = Math.max, min = Math.min;
+
+module.exports = function (searchString/*, position*/) {
+       var start, self = String(value(this));
+       start = min(max(toInteger(arguments[1]), 0), self.length);
+       return (self.indexOf(searchString, start) === start);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/format-method.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/format-method.js
new file mode 100644 (file)
index 0000000..f1de1e3
--- /dev/null
@@ -0,0 +1,24 @@
+'use strict';
+
+var isCallable = require('../object/is-callable')
+  , value      = require('../object/valid-value')
+
+  , call = Function.prototype.call;
+
+module.exports = function (fmap) {
+       fmap = Object(value(fmap));
+       return function (pattern) {
+               var context = value(this);
+               pattern = String(pattern);
+               return pattern.replace(/%([a-zA-Z]+)|\\([\u0000-\uffff])/g,
+                       function (match, token, escape) {
+                               var t, r;
+                               if (escape) return escape;
+                               t = token;
+                               while (t && !(r = fmap[t])) t = t.slice(0, -1);
+                               if (!r) return match;
+                               if (isCallable(r)) r = call.call(r, context);
+                               return r + token.slice(t.length);
+                       });
+       };
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/implement.js
new file mode 100644 (file)
index 0000000..b062331
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(String, 'fromCodePoint', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/index.js
new file mode 100644 (file)
index 0000000..3f3110b
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? String.fromCodePoint
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/is-implemented.js
new file mode 100644 (file)
index 0000000..840a20e
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function () {
+       var fromCodePoint = String.fromCodePoint;
+       if (typeof fromCodePoint !== 'function') return false;
+       return fromCodePoint(0x1D306, 0x61, 0x1D307) === '\ud834\udf06a\ud834\udf07';
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/shim.js
new file mode 100644 (file)
index 0000000..41fd737
--- /dev/null
@@ -0,0 +1,30 @@
+// Based on:
+// http://norbertlindenberg.com/2012/05/ecmascript-supplementary-characters/
+// and:
+// https://github.com/mathiasbynens/String.fromCodePoint/blob/master
+// /fromcodepoint.js
+
+'use strict';
+
+var floor = Math.floor, fromCharCode = String.fromCharCode;
+
+module.exports = function (codePoint/*, …codePoints*/) {
+       var chars = [], l = arguments.length, i, c, result = '';
+       for (i = 0; i < l; ++i) {
+               c = Number(arguments[i]);
+               if (!isFinite(c) || c < 0 || c > 0x10FFFF || floor(c) !== c) {
+                       throw new RangeError("Invalid code point " + c);
+               }
+
+               if (c < 0x10000) {
+                       chars.push(c);
+               } else {
+                       c -= 0x10000;
+                       chars.push((c >> 10) + 0xD800, (c % 0x400) + 0xDC00);
+               }
+               if (i + 1 !== l && chars.length <= 0x4000) continue;
+               result += fromCharCode.apply(null, chars);
+               chars.length = 0;
+       }
+       return result;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/index.js
new file mode 100644 (file)
index 0000000..dbbcdf6
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = {
+       '#':           require('./#'),
+       formatMethod:  require('./format-method'),
+       fromCodePoint: require('./from-code-point'),
+       isString:      require('./is-string'),
+       randomUniq:    require('./random-uniq'),
+       raw:           require('./raw')
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/is-string.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/is-string.js
new file mode 100644 (file)
index 0000000..719aeec
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+var toString = Object.prototype.toString
+
+  , id = toString.call('');
+
+module.exports = function (x) {
+       return (typeof x === 'string') || (x && (typeof x === 'object') &&
+               ((x instanceof String) || (toString.call(x) === id))) || false;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/random-uniq.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/random-uniq.js
new file mode 100644 (file)
index 0000000..54ae6f8
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+var generated = Object.create(null)
+
+  , random = Math.random;
+
+module.exports = function () {
+       var str;
+       do { str = random().toString(36).slice(2); } while (generated[str]);
+       return str;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/implement.js
new file mode 100644 (file)
index 0000000..c417e65
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(String, 'raw', { value: require('./shim'),
+               configurable: true, enumerable: false, writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/index.js
new file mode 100644 (file)
index 0000000..504a5de
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = require('./is-implemented')()
+       ? String.raw
+       : require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/is-implemented.js
new file mode 100644 (file)
index 0000000..d7204c0
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function () {
+       var raw = String.raw, test;
+       if (typeof raw !== 'function') return false;
+       test = ['foo\nbar', 'marko\n'];
+       test.raw = ['foo\\nbar', 'marko\\n'];
+       return raw(test, 'INSE\nRT') === 'foo\\nbarINSE\nRTmarko\\n';
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/shim.js
new file mode 100644 (file)
index 0000000..7096efb
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+var toPosInt   = require('../../number/to-pos-integer')
+  , validValue = require('../../object/valid-value')
+
+  , reduce = Array.prototype.reduce;
+
+module.exports = function (callSite/*,  …substitutions*/) {
+       var args, rawValue = Object(validValue(Object(validValue(callSite)).raw));
+       if (!toPosInt(rawValue.length)) return '';
+       args = arguments;
+       return reduce.call(rawValue, function (a, b, i) {
+               return a + String(args[i]) + b;
+       });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/__tad.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/__tad.js
new file mode 100644 (file)
index 0000000..8845778
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+exports.context = null;
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/@@iterator/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/@@iterator/implement.js
new file mode 100644 (file)
index 0000000..f060539
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../array/#/@@iterator/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/@@iterator/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/@@iterator/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/@@iterator/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/@@iterator/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/@@iterator/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/@@iterator/shim.js
new file mode 100644 (file)
index 0000000..e590d8f
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+exports.__generic = function (t, a) {
+       var iterator = t.call(this);
+       a.deep(iterator.next(), { value: '1', done: false });
+       a.deep(iterator.next(), { value: '2', done: false });
+       a.deep(iterator.next(), { value: '3', done: false });
+       a.deep(iterator.next(), { value: undefined, done: true });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/_compare-by-length.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/_compare-by-length.js
new file mode 100644 (file)
index 0000000..e40c305
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x = [4, 5, 6], y = { length: 8 }, w = {}, z = { length: 1 };
+
+       a.deep([x, y, w, z].sort(t), [w, z, x, y]);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/binary-search.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/binary-search.js
new file mode 100644 (file)
index 0000000..cf33173
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+var compare  = function (value) { return this - value; };
+
+module.exports = function (t, a) {
+       var arr;
+       arr = [2, 5, 5, 8, 34, 67, 98, 345, 678];
+
+       // highest, equal match
+       a(t.call(arr, compare.bind(1)), 0, "All higher");
+       a(t.call(arr, compare.bind(679)), arr.length - 1, "All lower");
+       a(t.call(arr, compare.bind(4)), 0, "Mid");
+       a(t.call(arr, compare.bind(5)), 2, "Match");
+       a(t.call(arr, compare.bind(6)), 2, "Above");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/clear.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/clear.js
new file mode 100644 (file)
index 0000000..a5b1c97
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x = [1, 2, {}, 4];
+       a(t.call(x), x, "Returns same array");
+       a.deep(x, [], "Empties array");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/compact.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/compact.js
new file mode 100644 (file)
index 0000000..6390eb2
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+module.exports = {
+       __generic: function (t, a) {
+               a(t.call(this).length, 3);
+       },
+       "": function (t, a) {
+               var o, x, y, z;
+               o = {};
+               x = [0, 1, "", null, o, false, undefined, true];
+               y = x.slice(0);
+
+               a.not(z = t.call(x), x, "Returns different object");
+               a.deep(x, y, "Origin not changed");
+               a.deep(z, [0, 1, "", o, false, true], "Result");
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/concat/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/concat/implement.js
new file mode 100644 (file)
index 0000000..3bdbe86
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../array/#/concat/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/concat/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/concat/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/concat/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/concat/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/concat/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/concat/shim.js
new file mode 100644 (file)
index 0000000..c30eb7e
--- /dev/null
@@ -0,0 +1,26 @@
+'use strict';
+
+var SubArray = require('../../../../array/_sub-array-dummy-safe');
+
+module.exports = function (t, a) {
+       var arr = [1, 3, 45], x = {}, subArr, subArr2, result;
+
+       a.deep(t.call(arr, '2d', x, ['ere', 'fe', x], false, null),
+               [1, 3, 45, '2d', x, 'ere', 'fe', x, false, null], "Plain array");
+
+       subArr = new SubArray('lol', 'miszko');
+       subArr2 = new SubArray('elo', 'fol');
+
+       result = t.call(subArr, 'df', arr, 'fef', subArr2, null);
+       a(result instanceof SubArray, true, "Instance of subclass");
+       a.deep(result, ['lol', 'miszko', 'df', 1, 3, 45, 'fef', 'elo', 'fol', null],
+               "Spreable by default");
+
+       SubArray.prototype['@@isConcatSpreadable'] = false;
+
+       result = t.call(subArr, 'df', arr, 'fef', subArr2, null);
+       a.deep(result, ['lol', 'miszko', 'df', 1, 3, 45, 'fef', subArr2, null],
+               "Non spreadable");
+
+       delete SubArray.prototype['@@isConcatSpreadable'];
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/contains.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/contains.js
new file mode 100644 (file)
index 0000000..21404a1
--- /dev/null
@@ -0,0 +1,21 @@
+'use strict';
+
+module.exports = {
+       __generic: function (t, a) {
+               a(t.call(this, this[1]), true, "Contains");
+               a(t.call(this, {}), false, "Does Not contain");
+       },
+       "": function (t, a) {
+               var o, x = {}, y = {};
+
+               o = [1, 'raz', x];
+
+               a(t.call(o, 1), true, "First");
+               a(t.call(o, '1'), false, "Type coercion");
+               a(t.call(o, 'raz'), true, "Primitive");
+               a(t.call(o, 'foo'), false, "Primitive not found");
+               a(t.call(o, x), true, "Object found");
+               a(t.call(o, y), false, "Object not found");
+               a(t.call(o, 1, 1), false, "Position");
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/copy-within/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/copy-within/implement.js
new file mode 100644 (file)
index 0000000..3607047
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../array/#/copy-within/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/copy-within/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/copy-within/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/copy-within/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/copy-within/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/copy-within/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/copy-within/shim.js
new file mode 100644 (file)
index 0000000..93c85ea
--- /dev/null
@@ -0,0 +1,29 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var args, x;
+
+       a.h1("2 args");
+       x = [1, 2, 3, 4, 5];
+       t.call(x, 0, 3);
+       a.deep(x, [4, 5, 3, 4, 5]);
+       a.deep(t.call([1, 2, 3, 4, 5], 1, 3), [1, 4, 5, 4, 5]);
+       a.deep(t.call([1, 2, 3, 4, 5], 1, 2), [1, 3, 4, 5, 5]);
+       a.deep(t.call([1, 2, 3, 4, 5], 2, 2), [1, 2, 3, 4, 5]);
+
+       a.h1("3 args");
+       a.deep(t.call([1, 2, 3, 4, 5], 0, 3, 4), [4, 2, 3, 4, 5]);
+       a.deep(t.call([1, 2, 3, 4, 5], 1, 3, 4), [1, 4, 3, 4, 5]);
+       a.deep(t.call([1, 2, 3, 4, 5], 1, 2, 4), [1, 3, 4, 4, 5]);
+
+       a.h1("Negative args");
+       a.deep(t.call([1, 2, 3, 4, 5], 0, -2), [4, 5, 3, 4, 5]);
+       a.deep(t.call([1, 2, 3, 4, 5], 0, -2, -1), [4, 2, 3, 4, 5]);
+       a.deep(t.call([1, 2, 3, 4, 5], -4, -3, -2), [1, 3, 3, 4, 5]);
+       a.deep(t.call([1, 2, 3, 4, 5], -4, -3, -1), [1, 3, 4, 4, 5]);
+       a.deep(t.call([1, 2, 3, 4, 5], -4, -3), [1, 3, 4, 5, 5]);
+
+       a.h1("Array-likes");
+       args = { 0: 1, 1: 2, 2: 3, length: 3 };
+       a.deep(t.call(args, -2, 0), { '0': 1, '1': 1, '2': 2, length: 3 });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/diff.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/diff.js
new file mode 100644 (file)
index 0000000..bcfa3a0
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+module.exports = {
+       __generic: function (t, a) {
+               a.deep(t.call(this, this), []);
+       },
+       "": function (t, a) {
+               var x = {}, y = {};
+
+               a.deep(t.call([1, 'raz', x, 2, 'trzy', y], [x, 2, 'trzy']), [1, 'raz', y],
+                       "Scope longer");
+               a.deep(t.call([1, 'raz', x], [x, 2, 'trzy', 1, y]), ['raz'],
+                       "Arg longer");
+               a.deep(t.call([1, 'raz', x], []), [1, 'raz', x], "Empty arg");
+               a.deep(t.call([], [1, y, 'sdfs']), [], "Empty scope");
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/e-index-of.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/e-index-of.js
new file mode 100644 (file)
index 0000000..4cf6c63
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x = {};
+       a(t.call([3, 'raz', {}, x, {}], x), 3, "Regular");
+       a(t.call([3, 'raz', NaN, {}, NaN], NaN), 2, "NaN");
+       a(t.call([3, 'raz', 0, {}, -0], -0), 2, "-0");
+       a(t.call([3, 'raz', -0, {}, 0], +0), 2, "+0");
+       a(t.call([3, 'raz', NaN, {}, NaN], NaN, 3), 4, "fromIndex");
+       a(t.call([3, 'raz', NaN, {}, NaN], NaN, -1), 4, "fromIndex negative #1");
+       a(t.call([3, 'raz', NaN, {}, NaN], NaN, -2), 4, "fromIndex negative #2");
+       a(t.call([3, 'raz', NaN, {}, NaN], NaN, -3), 2, "fromIndex negative #3");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/e-last-index-of.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/e-last-index-of.js
new file mode 100644 (file)
index 0000000..ed4f700
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x = {};
+       a(t.call([3, 'raz', {}, x, {}, x], x), 5, "Regular");
+       a(t.call([3, 'raz', NaN, {}, x], NaN), 2, "NaN");
+       a(t.call([3, 'raz', 0, {}, -0], -0), 4, "-0");
+       a(t.call([3, 'raz', -0, {}, 0], +0), 4, "+0");
+       a(t.call([3, 'raz', NaN, {}, NaN], NaN, 3), 2, "fromIndex");
+       a(t.call([3, 'raz', NaN, 2, NaN], NaN, -1), 4, "Negative fromIndex #1");
+       a(t.call([3, 'raz', NaN, 2, NaN], NaN, -2), 2, "Negative fromIndex #2");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/entries/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/entries/implement.js
new file mode 100644 (file)
index 0000000..733209a
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../array/#/entries/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/entries/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/entries/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/entries/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/entries/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/entries/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/entries/shim.js
new file mode 100644 (file)
index 0000000..bf40d31
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+exports.__generic = function (t, a) {
+       var iterator = t.call(this);
+       a.deep(iterator.next(), { value: [0, '1'], done: false });
+       a.deep(iterator.next(), { value: [1, '2'], done: false });
+       a.deep(iterator.next(), { value: [2, '3'], done: false });
+       a.deep(iterator.next(), { value: undefined, done: true });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/exclusion.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/exclusion.js
new file mode 100644 (file)
index 0000000..07b32d8
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+module.exports = {
+       __generic: function (t, a) {
+               var x = {};
+               a.deep(t.call(this, this, [this[0], this[2], x]), [x]);
+       },
+       "": function (t, a) {
+               var x = {}, y = {};
+
+               a.deep(t.call([x, y]), [x, y], "No arguments");
+               a.deep(t.call([x, 1], [], []), [x, 1], "Empty arguments");
+               a.deep(t.call([1, 'raz', x], [2, 'raz', y], [2, 'raz', x]), [1, y]);
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/fill/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/fill/implement.js
new file mode 100644 (file)
index 0000000..2a01d28
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../array/#/fill/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/fill/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/fill/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/fill/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/fill/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/fill/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/fill/shim.js
new file mode 100644 (file)
index 0000000..d67300f
--- /dev/null
@@ -0,0 +1,18 @@
+// Taken from https://github.com/paulmillr/es6-shim/blob/master/test/array.js
+
+'use strict';
+
+module.exports = function (t, a) {
+       var x;
+
+       x = [1, 2, 3, 4, 5, 6];
+       a(t.call(x, -1), x, "Returns self object");
+       a.deep(x, [-1, -1, -1, -1, -1, -1], "Value");
+
+       a.deep(t.call([1, 2, 3, 4, 5, 6], -1, 3), [1, 2, 3, -1, -1, -1],
+               "Positive start");
+       a.deep(t.call([1, 2, 3, 4, 5, 6], -1, -3), [1, 2, 3, -1, -1, -1],
+               "Negative start");
+       a.deep(t.call([1, 2, 3, 4, 5, 6], -1, 9), [1, 2, 3, 4, 5, 6],
+               "Large start");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/filter/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/filter/implement.js
new file mode 100644 (file)
index 0000000..6d6b87c
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../array/#/filter/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/filter/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/filter/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/filter/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/filter/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/filter/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/filter/shim.js
new file mode 100644 (file)
index 0000000..e8b5c39
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+var SubArray = require('../../../../array/_sub-array-dummy-safe');
+
+module.exports = function (t, a) {
+       var arr, x = {}, subArr, result;
+
+       arr = ['foo', undefined, 0, '2d', false, x, null];
+
+       a.deep(t.call(arr, Boolean), ['foo', '2d', x], "Plain array");
+
+       subArr = new SubArray('foo', undefined, 0, '2d', false, x, null);
+
+       result = t.call(subArr, Boolean);
+       a(result instanceof SubArray, true, "Instance of subclass");
+       a.deep(result, ['foo', '2d', x], "Result of subclass");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find-index/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find-index/implement.js
new file mode 100644 (file)
index 0000000..8d85e61
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../array/#/find-index/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find-index/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find-index/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find-index/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find-index/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find-index/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find-index/shim.js
new file mode 100644 (file)
index 0000000..b5fee46
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+exports.__generic = function (t, a) {
+       var count = 0, o = {}, self = Object(this);
+       a(t.call(self, function (value, i, scope) {
+               a(value, this[i], "Value");
+               a(i, count++, "Index");
+               a(scope, this, "Scope");
+       }, self), -1, "Falsy result");
+       a(count, 3);
+
+       count = -1;
+       a(t.call(this, function () {
+               return ++count ? o : null;
+       }, this), 1, "Truthy result");
+       a(count, 1);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find/implement.js
new file mode 100644 (file)
index 0000000..29fac41
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../array/#/find/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find/shim.js
new file mode 100644 (file)
index 0000000..ad2e645
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+exports.__generic = function (t, a) {
+       var count = 0, o = {}, self = Object(this);
+       a(t.call(self, function (value, i, scope) {
+               a(value, this[i], "Value");
+               a(i, count++, "Index");
+               a(scope, this, "Scope");
+       }, self), undefined, "Falsy result");
+       a(count, 3);
+
+       count = -1;
+       a(t.call(this, function () {
+               return ++count ? o : null;
+       }, this), this[1], "Truthy result");
+       a(count, 1);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/first-index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/first-index.js
new file mode 100644 (file)
index 0000000..4aebad6
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x;
+       a(t.call([]), null, "Empty");
+       a(t.call([null]), 0, "One value");
+       a(t.call([1, 2, 3]), 0, "Many values");
+       a(t.call(new Array(1000)), null, "Sparse empty");
+       x = [];
+       x[883] = undefined;
+       x[890] = null;
+       a(t.call(x), 883, "Manual sparse, distant value");
+       x = new Array(1000);
+       x[657] = undefined;
+       x[700] = null;
+       a(t.call(x), 657, "Sparse, distant value");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/first.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/first.js
new file mode 100644 (file)
index 0000000..87fde03
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+exports.__generic = function (t, a) {
+       a(t.call(this), this[0]);
+};
+exports[''] = function (t, a) {
+       var x;
+       a(t.call([]), undefined, "Empty");
+       a(t.call(new Array(234), undefined, "Sparse empty"));
+       x = new Array(2342);
+       x[434] = {};
+       a(t.call(x), x[434], "Sparse");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/flatten.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/flatten.js
new file mode 100644 (file)
index 0000000..65f1214
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+var o = [1, 2, [3, 4, [5, 6], 7, 8], 9, 10];
+
+module.exports = {
+       __generic: function (t, a) {
+               a(t.call(this).length, 3);
+       },
+       "Nested Arrays": function (t, a) {
+               a(t.call(o).length, 10);
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/for-each-right.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/for-each-right.js
new file mode 100644 (file)
index 0000000..2d24569
--- /dev/null
@@ -0,0 +1,36 @@
+'use strict';
+
+module.exports = {
+       __generic: function (t, a) {
+               var count = 0, first, last, x, icount = this.length;
+               t.call(this, function (item, index, col) {
+                       ++count;
+                       if (!first) {
+                               first = item;
+                       }
+                       last = item;
+                       x = col;
+                       a(index, --icount, "Index");
+               });
+               a(count, this.length, "Iterated");
+               a(first, this[this.length - 1], "First is last");
+               a(last, this[0], "Last is first");
+               a.deep(x, Object(this), "Collection as third argument"); //jslint: skip
+       },
+       "": function (t, a) {
+               var x = {}, y, count;
+               t.call([1], function () { y = this; }, x);
+               a(y, x, "Scope");
+               y = 0;
+               t.call([3, 4, 4], function (a, i) { y += i; });
+               a(y, 3, "Indexes");
+
+               x = [1, 3];
+               x[5] = 'x';
+               y = 0;
+               count = 0;
+               t.call(x, function (a, i) { ++count; y += i; });
+               a(y, 6, "Misssing Indexes");
+               a(count, 3, "Misssing Indexes, count");
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/group.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/group.js
new file mode 100644 (file)
index 0000000..32dc8c2
--- /dev/null
@@ -0,0 +1,24 @@
+'use strict';
+
+module.exports = {
+       __generic: function (t, a) {
+               var count = 0, self;
+
+               self = Object(this);
+               a.deep(t.call(self, function (v, i, scope) {
+                       a(v, this[i], "Value");
+                       a(i, count++, "Index");
+                       a(scope, this, "Scope");
+                       return i;
+               }, self), { 0: [this[0]], 1: [this[1]], 2: [this[2]] });
+       },
+       "": function (t, a) {
+               var r;
+               r = t.call([2, 3, 3, 4, 5, 6, 7, 7, 23, 45, 34, 56],
+                       function (v) {
+                               return v % 2 ? 'odd' : 'even';
+                       });
+               a.deep(r.odd, [3, 3, 5, 7, 7, 23, 45]);
+               a.deep(r.even, [2, 4, 6, 34, 56]);
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/indexes-of.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/indexes-of.js
new file mode 100644 (file)
index 0000000..3364170
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+module.exports = {
+       __generic: function (t, a) {
+               a.deep(t.call(this, this[1]), [1]);
+       },
+       "": function (t, a) {
+               var x = {};
+               a.deep(t.call([1, 3, 5, 3, 5], 6), [], "No result");
+               a.deep(t.call([1, 3, 5, 1, 3, 5, 1], 1), [0, 3, 6], "Some results");
+               a.deep(t.call([], x), [], "Empty array");
+               a.deep(t.call([x, 3, {}, x, 3, 5, x], x), [0, 3, 6], "Search for object");
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/intersection.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/intersection.js
new file mode 100644 (file)
index 0000000..b72b2fb
--- /dev/null
@@ -0,0 +1,24 @@
+'use strict';
+
+var toArray = require('../../../array/to-array');
+
+module.exports = {
+       __generic: function (t, a) {
+               a.deep(t.call(this, this, this), toArray(this));
+       },
+       "": function (t, a) {
+               var x = {}, y = {}, p, r;
+               a.deep(t.call([], [2, 3, 4]), [], "Empty #1");
+               a.deep(t.call([2, 3, 4], []), [], "Empty #2");
+               a.deep(t.call([2, 3, x], [y, 5, 7]), [], "Different");
+               p = t.call([3, 5, 'raz', {}, 'dwa', x], [1, 3, 'raz', 'dwa', 'trzy', x, {}],
+                       [3, 'raz', x, 65]);
+               r = [3, 'raz', x];
+               p.sort();
+               r.sort();
+               a.deep(p, r, "Same parts");
+               a.deep(t.call(r, r), r, "Same");
+               a.deep(t.call([1, 2, x, 4, 5, y, 7], [7, y, 5, 4, x, 2, 1]),
+                       [1, 2, x, 4, 5, y, 7], "Long reverse same");
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/is-copy.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/is-copy.js
new file mode 100644 (file)
index 0000000..e7f80e7
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x = {};
+       a(t.call([], []), true, "Empty");
+       a(t.call([], {}), true, "Empty lists");
+       a(t.call([1, x, 'raz'], [1, x, 'raz']), true, "Same");
+       a(t.call([1, x, 'raz'], { 0: 1, 1: x, 2: 'raz', length: 3 }), true,
+                       "Same lists");
+       a(t.call([1, x, 'raz'], [x, 1, 'raz']), false, "Diff order");
+       a(t.call([1, x], [1, x, 'raz']), false, "Diff length #1");
+       a(t.call([1, x, 'raz'], [1, x]), false, "Diff length #2");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/is-uniq.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/is-uniq.js
new file mode 100644 (file)
index 0000000..7349ba3
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x = {};
+       a(t.call([]), true, "Empty");
+       a(t.call({}), true, "Empty lists");
+       a(t.call([1, x, 'raz']), true, "Uniq");
+       a(t.call([1, x, 1, 'raz']), false, "Not Uniq: primitive");
+       a(t.call([1, x, '1', 'raz']), true, "Uniq: primitive");
+       a(t.call([1, x, 1, {}, 'raz']), false, "Not Uniq: Obj");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/keys/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/keys/implement.js
new file mode 100644 (file)
index 0000000..b0c1aa0
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../array/#/keys/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/keys/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/keys/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/keys/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/keys/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/keys/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/keys/shim.js
new file mode 100644 (file)
index 0000000..a43c04c
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+exports.__generic = function (t, a) {
+       var iterator = t.call(this);
+       a.deep(iterator.next(), { value: 0, done: false });
+       a.deep(iterator.next(), { value: 1, done: false });
+       a.deep(iterator.next(), { value: 2, done: false });
+       a.deep(iterator.next(), { value: undefined, done: true });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/last-index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/last-index.js
new file mode 100644 (file)
index 0000000..a1cac10
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x;
+       a(t.call([]), null, "Empty");
+       a(t.call([null]), 0, "One value");
+       a(t.call([1, 2, 3]), 2, "Many values");
+       a(t.call(new Array(1000)), null, "Sparse empty");
+       x = [];
+       x[883] = null;
+       x[890] = undefined;
+       a(t.call(x), 890, "Manual sparse, distant value");
+       x = new Array(1000);
+       x[657] = null;
+       x[700] = undefined;
+       a(t.call(x), 700, "Sparse, distant value");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/last.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/last.js
new file mode 100644 (file)
index 0000000..8d051bc
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+exports.__generic = function (t, a) {
+       a(t.call(this), this[this.length - 1]);
+};
+
+exports[''] = function (t, a) {
+       var x;
+       a(t.call([]), undefined, "Empty");
+       a(t.call(new Array(234), undefined, "Sparse empty"));
+       x = new Array(2342);
+       x[434] = {};
+       x[450] = {};
+       a(t.call(x), x[450], "Sparse");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/map/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/map/implement.js
new file mode 100644 (file)
index 0000000..cdcbc8d
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../array/#/map/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/map/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/map/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/map/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/map/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/map/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/map/shim.js
new file mode 100644 (file)
index 0000000..bbfefe8
--- /dev/null
@@ -0,0 +1,19 @@
+'use strict';
+
+var SubArray = require('../../../../array/_sub-array-dummy-safe');
+
+module.exports = function (t, a) {
+       var arr, x = {}, subArr, result;
+
+       arr = ['foo', undefined, 0, '2d', false, x, null];
+
+       a.deep(t.call(arr, Boolean), [true, false, false, true, false, true, false],
+               "Plain array");
+
+       subArr = new SubArray('foo', undefined, 0, '2d', false, x, null);
+
+       result = t.call(subArr, Boolean);
+       a(result instanceof SubArray, true, "Instance of subclass");
+       a.deep(result, [true, false, false, true, false, true, false],
+               "Result of subclass");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/remove.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/remove.js
new file mode 100644 (file)
index 0000000..3ebdca2
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var y = {}, z = {}, x = [9, z, 5, y, 'foo'];
+       t.call(x, y);
+       a.deep(x, [9, z, 5, 'foo']);
+       t.call(x, {});
+       a.deep(x, [9, z, 5, 'foo'], "Not existing");
+       t.call(x, 5);
+       a.deep(x, [9, z, 'foo'], "Primitive");
+       x = [9, z, 5, y, 'foo'];
+       t.call(x, z, 5, 'foo');
+       a.deep(x, [9, y], "More than one argument");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/separate.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/separate.js
new file mode 100644 (file)
index 0000000..42918b5
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x = [], y = {}, z = {};
+       a.deep(t.call(x, y), [], "Empty");
+       a.not(t.call(x), x, "Returns copy");
+       a.deep(t.call([1], y), [1], "One");
+       a.deep(t.call([1, 'raz'], y), [1, y, 'raz'], "One");
+       a.deep(t.call([1, 'raz', x], y), [1, y, 'raz', y, x], "More");
+       x = new Array(1000);
+       x[23] = 2;
+       x[3453] = 'raz';
+       x[500] = z;
+       a.deep(t.call(x, y), [2, y, z, y, 'raz'], "Sparse");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/slice/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/slice/implement.js
new file mode 100644 (file)
index 0000000..855ae2f
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../array/#/slice/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/slice/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/slice/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/slice/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/slice/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/slice/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/slice/shim.js
new file mode 100644 (file)
index 0000000..f674f34
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+var SubArray = require('../../../../array/_sub-array-dummy-safe');
+
+module.exports = function (t, a) {
+       var arr, x = {}, subArr, result;
+
+       arr = ['foo', undefined, 0, '2d', false, x, null];
+
+       a.deep(t.call(arr, 2, 4), [0, '2d'], "Plain array: result");
+
+       subArr = new SubArray('foo', undefined, 0, '2d', false, x, null);
+
+       result = t.call(subArr, 2, 4);
+       a(result instanceof SubArray, true, "Instance of subclass");
+       a.deep(result, [0, '2d'], "Subclass: result");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/some-right.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/some-right.js
new file mode 100644 (file)
index 0000000..900771a
--- /dev/null
@@ -0,0 +1,43 @@
+'use strict';
+
+module.exports = {
+       __generic: function (t, a) {
+               var count = 0, first, last, x, icount = this.length;
+               t.call(this, function (item, index, col) {
+                       ++count;
+                       if (!first) {
+                               first = item;
+                       }
+                       last = item;
+                       x = col;
+                       a(index, --icount, "Index");
+               });
+               a(count, this.length, "Iterated");
+               a(first, this[this.length - 1], "First is last");
+               a(last, this[0], "Last is first");
+               a.deep(x, Object(this), "Collection as third argument"); //jslint: skip
+       },
+       "": function (t, a) {
+               var x = {}, y, count;
+               t.call([1], function () { y = this; }, x);
+               a(y, x, "Scope");
+               y = 0;
+               t.call([3, 4, 4], function (a, i) { y += i; });
+               a(y, 3, "Indexes");
+
+               x = [1, 3];
+               x[5] = 'x';
+               y = 0;
+               count = 0;
+               a(t.call(x, function (a, i) { ++count; y += i; }), false, "Return");
+               a(y, 6, "Misssing Indexes");
+               a(count, 3, "Misssing Indexes, count");
+
+               count = 0;
+               a(t.call([-2, -3, -4, 2, -5], function (item) {
+                       ++count;
+                       return item > 0;
+               }), true, "Return");
+               a(count, 2, "Break after true is returned");
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/splice/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/splice/implement.js
new file mode 100644 (file)
index 0000000..0d9f461
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../array/#/splice/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/splice/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/splice/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/splice/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/splice/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/splice/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/splice/shim.js
new file mode 100644 (file)
index 0000000..2c751e6
--- /dev/null
@@ -0,0 +1,19 @@
+'use strict';
+
+var SubArray = require('../../../../array/_sub-array-dummy-safe');
+
+module.exports = function (t, a) {
+       var arr, x = {}, subArr, result;
+
+       arr = ['foo', undefined, 0, '2d', false, x, null];
+
+       a.deep(t.call(arr, 2, 2, 'bar'), [0, '2d'], "Plain array: result");
+       a.deep(arr, ["foo", undefined, "bar", false, x, null], "Plain array: change");
+
+       subArr = new SubArray('foo', undefined, 0, '2d', false, x, null);
+
+       result = t.call(subArr, 2, 2, 'bar');
+       a(result instanceof SubArray, true, "Instance of subclass");
+       a.deep(result, [0, '2d'], "Subclass: result");
+       a.deep(subArr, ["foo", undefined, "bar", false, x, null], "Subclass: change");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/uniq.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/uniq.js
new file mode 100644 (file)
index 0000000..2f7e6c4
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+module.exports = {
+       __generic: function (t, a) {
+               a(t.call(this).length, 3);
+       },
+       "": function (t, a) {
+               var o, x = {}, y = {}, z = {}, w;
+               o = [1, 2, x, 3, 1, 'raz', '1', y, x, 'trzy', z, 'raz'];
+
+               a.not(w = t.call(o), o, "Returns different object");
+               a.deep(w, [1, 2, x, 3, 'raz', '1', y, 'trzy', z], "Result");
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/values/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/values/implement.js
new file mode 100644 (file)
index 0000000..9f40138
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../array/#/values/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/values/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/values/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/values/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/values/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/values/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/values/shim.js
new file mode 100644 (file)
index 0000000..e590d8f
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+exports.__generic = function (t, a) {
+       var iterator = t.call(this);
+       a.deep(iterator.next(), { value: '1', done: false });
+       a.deep(iterator.next(), { value: '2', done: false });
+       a.deep(iterator.next(), { value: '3', done: false });
+       a.deep(iterator.next(), { value: undefined, done: true });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/__scopes.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/__scopes.js
new file mode 100644 (file)
index 0000000..fc240d3
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+exports.Array = ['1', '2', '3'];
+
+exports.Arguments = (function () {
+       return arguments;
+}('1', '2', '3'));
+
+exports.String = "123";
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/_is-extensible.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/_is-extensible.js
new file mode 100644 (file)
index 0000000..d387126
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(typeof t, 'boolean');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/_sub-array-dummy-safe.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/_sub-array-dummy-safe.js
new file mode 100644 (file)
index 0000000..29d8699
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var isArray = Array.isArray;
+
+module.exports = function (t, a) {
+       t((t === null) || isArray(t.prototype), true);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/_sub-array-dummy.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/_sub-array-dummy.js
new file mode 100644 (file)
index 0000000..29d8699
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var isArray = Array.isArray;
+
+module.exports = function (t, a) {
+       t((t === null) || isArray(t.prototype), true);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/from/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/from/implement.js
new file mode 100644 (file)
index 0000000..e0db846
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../array/from/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/from/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/from/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/from/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/from/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/from/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/from/shim.js
new file mode 100644 (file)
index 0000000..310302a
--- /dev/null
@@ -0,0 +1,60 @@
+// Some tests taken from: https://github.com/mathiasbynens/Array.from/blob/master/tests/tests.js
+
+'use strict';
+
+module.exports = function (t, a) {
+       var o = [1, 2, 3], MyType;
+       a.not(t(o), o, "Array");
+       a.deep(t(o), o, "Array: same content");
+       a.deep(t('12r3v'), ['1', '2', 'r', '3', 'v'], "String");
+       a.deep(t((function () { return arguments; }(3, o, 'raz'))),
+               [3, o, 'raz'], "Arguments");
+       a.deep(t((function () { return arguments; }(3))), [3],
+               "Arguments with one numeric value");
+
+       a.deep(t({ 0: 'raz', 1: 'dwa', length: 2 }), ['raz', 'dwa'], "Other");
+
+       a.deep(t(o, function (val) { return (val + 2) * 10; }, 10), [30, 40, 50],
+               "Mapping");
+
+       a.throws(function () { t(); }, TypeError, "Undefined");
+       a.deep(t(3), [], "Primitive");
+
+       a(t.length, 1, "Length");
+       a.deep(t({ length: 0 }), [], "No values Array-like");
+       a.deep(t({ length: -1 }), [], "Invalid length Array-like");
+       a.deep(t({ length: -Infinity }), [], "Invalid length Array-like #2");
+       a.throws(function () { t(undefined); }, TypeError, "Undefined");
+       a.throws(function () { t(null); }, TypeError, "Null");
+       a.deep(t(false), [], "Boolean");
+       a.deep(t(-Infinity), [], "Inifity");
+       a.deep(t(-0), [], "-0");
+       a.deep(t(+0), [], "+0");
+       a.deep(t(1), [], "1");
+       a.deep(t(+Infinity), [], "+Infinity");
+       a.deep(t({}), [], "Plain object");
+       a.deep(t({ length: 1 }), [undefined], "Sparse array-like");
+       a.deep(t({ '0': 'a', '1': 'b', length: 2 }, function (x) { return x + x; }), ['aa', 'bb'],
+               "Map");
+       a.deep(t({ '0': 'a', '1': 'b', length: 2 }, function (x) { return String(this); }, undefined),
+               ['undefined', 'undefined'], "Map context");
+       a.deep(t({ '0': 'a', '1': 'b', length: 2 }, function (x) { return String(this); }, 'x'),
+               ['x', 'x'], "Map primitive context");
+       a.throws(function () { t({}, 'foo', 'x'); }, TypeError, "Non callable for map");
+
+       a.deep(t.call(null, { length: 1, '0': 'a' }), ['a'], "Null context");
+
+       a(t({ __proto__: { '0': 'abc', length: 1 } })[0], 'abc', "Values on prototype");
+
+       a.throws(function () { t.call(function () { return Object.freeze({}); }, {}); },
+               TypeError, "Contructor producing freezed objects");
+
+       // Ensure no setters are called for the indexes
+       // Ensure no setters are called for the indexes
+       MyType = function () {};
+       Object.defineProperty(MyType.prototype, '0', {
+               set: function (x) { throw new Error('Setter called: ' + x); }
+       });
+       a.deep(t.call(MyType, { '0': 'abc', length: 1 }), { '0': 'abc', length: 1 },
+               "Defined not set");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/generate.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/generate.js
new file mode 100644 (file)
index 0000000..d72e056
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x = {}, y = {};
+       a.deep(t(3), [undefined, undefined, undefined], "Just length");
+       a.deep(t(0, 'x'), [], "No repeat");
+       a.deep(t(1, x, y), [x], "Arguments length larger than repeat number");
+       a.deep(t(3, x), [x, x, x], "Single argument");
+       a.deep(t(5, x, y), [x, y, x, y, x], "Many arguments");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/is-plain-array.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/is-plain-array.js
new file mode 100644 (file)
index 0000000..871a08a
--- /dev/null
@@ -0,0 +1,18 @@
+'use strict';
+
+var SubArray = require('../../array/_sub-array-dummy-safe');
+
+module.exports = function (t, a) {
+       var arr = [1, 2, 3];
+       a(t(arr), true, "Array");
+       a(t(null), false, "Null");
+       a(t(), false, "Undefined");
+       a(t('234'), false, "String");
+       a(t(23), false, "Number");
+       a(t({}), false, "Plain object");
+       a(t({ length: 1, 0: 'raz' }), false, "Array-like");
+       a(t(Object.create(arr)), false, "Array extension");
+       if (!SubArray) return;
+       a(t(new SubArray(23)), false, "Subclass instance");
+       a(t(Array.prototype), false, "Array.prototype");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/of/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/of/implement.js
new file mode 100644 (file)
index 0000000..30d53be
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../array/of/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/of/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/of/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/of/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/of/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/of/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/of/shim.js
new file mode 100644 (file)
index 0000000..e697442
--- /dev/null
@@ -0,0 +1,68 @@
+// Most tests taken from https://github.com/mathiasbynens/Array.of/blob/master/tests/tests.js
+// Thanks @mathiasbynens
+
+'use strict';
+
+var defineProperty = Object.defineProperty;
+
+module.exports = function (t, a) {
+       var x = {}, testObject, MyType;
+
+       a.deep(t(), [], "No arguments");
+       a.deep(t(3), [3], "One numeric argument");
+       a.deep(t(3, 'raz', null, x, undefined), [3, 'raz', null, x, undefined],
+               "Many arguments");
+
+       a(t.length, 0, "Length");
+
+       a.deep(t('abc'), ['abc'], "String");
+       a.deep(t(undefined), [undefined], "Undefined");
+       a.deep(t(null), [null], "Null");
+       a.deep(t(false), [false], "Boolean");
+       a.deep(t(-Infinity), [-Infinity], "Infinity");
+       a.deep(t(-0), [-0], "-0");
+       a.deep(t(+0), [+0], "+0");
+       a.deep(t(1), [1], "1");
+       a.deep(t(1, 2, 3), [1, 2, 3], "Numeric args");
+       a.deep(t(+Infinity), [+Infinity], "+Infinity");
+       a.deep(t({ '0': 'a', '1': 'b', '2': 'c', length: 3 }),
+               [{ '0': 'a', '1': 'b', '2': 'c', length: 3 }], "Array like");
+       a.deep(t(undefined, null, false, -Infinity, -0, +0, 1, 2, +Infinity),
+               [undefined, null, false, -Infinity, -0, +0, 1, 2, +Infinity], "Falsy arguments");
+
+       a.h1("Null context");
+       a.deep(t.call(null, 'abc'), ['abc'], "String");
+       a.deep(t.call(null, undefined), [undefined], "Undefined");
+       a.deep(t.call(null, null), [null], "Null");
+       a.deep(t.call(null, false), [false], "Boolean");
+       a.deep(t.call(null, -Infinity), [-Infinity], "-Infinity");
+       a.deep(t.call(null, -0), [-0], "-0");
+       a.deep(t.call(null, +0), [+0], "+0");
+       a.deep(t.call(null, 1), [1], "1");
+       a.deep(t.call(null, 1, 2, 3), [1, 2, 3], "Numeric");
+       a.deep(t.call(null, +Infinity), [+Infinity], "+Infinity");
+       a.deep(t.call(null, { '0': 'a', '1': 'b', '2': 'c', length: 3 }),
+               [{ '0': 'a', '1': 'b', '2': 'c', length: 3 }], "Array-like");
+       a.deep(t.call(null, undefined, null, false, -Infinity, -0, +0, 1, 2, +Infinity),
+               [undefined, null, false, -Infinity, -0, +0, 1, 2, +Infinity], "Falsy");
+
+       a.h1("Other constructor context");
+       a.deep(t.call(Object, 1, 2, 3), { '0': 1, '1': 2, '2': 3, length: 3 }, "Many arguments");
+
+       testObject = Object(3);
+       testObject[0] = 1;
+       testObject[1] = 2;
+       testObject[2] = 3;
+       testObject.length = 3;
+       a.deep(t.call(Object, 1, 2, 3), testObject, "Test object");
+       a(t.call(Object).length, 0, "No arguments");
+       a.throws(function () { t.call(function () { return Object.freeze({}); }); }, TypeError,
+               "Frozen instance");
+
+       // Ensure no setters are called for the indexes
+       MyType = function () {};
+       defineProperty(MyType.prototype, '0', {
+               set: function (x) { throw new Error('Setter called: ' + x); }
+       });
+       a.deep(t.call(MyType, 'abc'), { '0': 'abc', length: 1 }, "Define, not set");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/to-array.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/to-array.js
new file mode 100644 (file)
index 0000000..4985b5e
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var o = [1, 2, 3];
+       a(t(o), o, "Array");
+       a.deep(t('12r3v'), ['1', '2', 'r', '3', 'v'], "String");
+       a.deep(t((function () { return arguments; }(3, o, 'raz'))),
+               [3, o, 'raz'], "Arguments");
+       a.deep(t((function () { return arguments; }(3))), [3],
+               "Arguments with one numeric value");
+
+       a.deep(t({ 0: 'raz', 1: 'dwa', length: 2 }), ['raz', 'dwa'], "Other");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/valid-array.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/valid-array.js
new file mode 100644 (file)
index 0000000..3732192
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x;
+       a.throws(function () { t(); }, TypeError, "Undefined");
+       a.throws(function () { t(null); }, TypeError, "Null");
+       a.throws(function () { t(0); }, TypeError, "Number");
+       a.throws(function () { t(true); }, TypeError, "Boolean");
+       a.throws(function () { t('raz'); }, TypeError, "String");
+       a.throws(function () { t(function () {}); }, TypeError, "Function");
+       a.throws(function () { t({}); }, TypeError, "Object");
+       a.throws(function () { t({ length: 0 }); }, TypeError, "Array-like");
+       a(t(x = []), x, "Array");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/boolean/is-boolean.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/boolean/is-boolean.js
new file mode 100644 (file)
index 0000000..4e6b3cb
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t('arar'), false, "String");
+       a(t(12), false, "Number");
+       a(t(false), true, "Boolean");
+       a(t(new Boolean(false)), true, "Boolean object");
+       a(t(new Date()), false, "Date");
+       a(t(new String('raz')), false, "String object");
+       a(t({}), false, "Plain object");
+       a(t(/a/), false, "Regular expression");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/copy.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/copy.js
new file mode 100644 (file)
index 0000000..767c5e1
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var o = new Date(), o2;
+
+       o2 = t.call(o);
+       a.not(o, o2, "Different objects");
+       a.ok(o2 instanceof Date, "Instance of Date");
+       a(o.getTime(), o2.getTime(), "Same time");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/days-in-month.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/days-in-month.js
new file mode 100644 (file)
index 0000000..9ddba55
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call(new Date(2001, 0, 1)), 31, "January");
+       a(t.call(new Date(2001, 1, 1)), 28, "February");
+       a(t.call(new Date(2000, 1, 1)), 29, "February (leap)");
+       a(t.call(new Date(2001, 2, 1)), 31, "March");
+       a(t.call(new Date(2001, 3, 1)), 30, "April");
+       a(t.call(new Date(2001, 4, 1)), 31, "May");
+       a(t.call(new Date(2001, 5, 1)), 30, "June");
+       a(t.call(new Date(2001, 6, 1)), 31, "July");
+       a(t.call(new Date(2001, 7, 1)), 31, "August");
+       a(t.call(new Date(2001, 8, 1)), 30, "September");
+       a(t.call(new Date(2001, 9, 1)), 31, "October");
+       a(t.call(new Date(2001, 10, 1)), 30, "November");
+       a(t.call(new Date(2001, 11, 1)), 31, "December");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/floor-day.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/floor-day.js
new file mode 100644 (file)
index 0000000..d4f4a90
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call(new Date(2000, 0, 1, 13, 32, 34, 234)).valueOf(),
+               new Date(2000, 0, 1).valueOf());
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/floor-month.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/floor-month.js
new file mode 100644 (file)
index 0000000..b4a81be
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call(new Date(2000, 0, 15, 13, 32, 34, 234)).valueOf(),
+               new Date(2000, 0, 1).valueOf());
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/floor-year.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/floor-year.js
new file mode 100644 (file)
index 0000000..aae117e
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call(new Date(2000, 5, 13, 13, 32, 34, 234)).valueOf(),
+               new Date(2000, 0, 1).valueOf());
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/format.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#/format.js
new file mode 100644 (file)
index 0000000..e68e4bf
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var dt = new Date(2011, 2, 3, 3, 5, 5, 32);
+       a(t.call(dt, ' %Y.%y.%m.%d.%H.%M.%S.%L '), ' 2011.11.03.03.03.05.05.032 ');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/is-date.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/is-date.js
new file mode 100644 (file)
index 0000000..109093d
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t('arar'), false, "String");
+       a(t(12), false, "Number");
+       a(t(true), false, "Boolean");
+       a(t(new Date()), true, "Date");
+       a(t(new String('raz')), false, "String object");
+       a(t({}), false, "Plain object");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/valid-date.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/valid-date.js
new file mode 100644 (file)
index 0000000..98787e4
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var d = new Date();
+       a(t(d), d, "Date");
+       a.throws(function () {
+               t({});
+       }, "Object");
+       a.throws(function () {
+               t({ valueOf: function () { return 20; } });
+       }, "Number object");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/error/#/throw.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/error/#/throw.js
new file mode 100644 (file)
index 0000000..1213cfc
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var e = new Error();
+       try {
+               t.call(e);
+       } catch (e2) {
+               a(e2, e);
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/error/custom.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/error/custom.js
new file mode 100644 (file)
index 0000000..d4ff500
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var T = t, err = new T('My Error', 'MY_ERROR', { errno: 123 });
+       a(err instanceof Error, true, "Instance of error");
+       a(err.constructor, Error, "Constructor");
+       a(err.name, 'Error', "Name");
+       a(String(err), 'Error: My Error', "String representation");
+       a(err.code, 'MY_ERROR', "Code");
+       a(err.errno, 123, "Errno");
+       a(typeof err.stack, 'string', "Stack trace");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/error/is-error.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/error/is-error.js
new file mode 100644 (file)
index 0000000..f8b5e20
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t(), false, "Undefined");
+       a(t(1), false, "Primitive");
+       a(t({}), false, "Objectt");
+       a(t({ toString: function () { return '[object Error]'; } }), false,
+               "Fake error");
+       a(t(new Error()), true, "Error");
+       a(t(new EvalError()), true, "EvalError");
+       a(t(new RangeError()), true, "RangeError");
+       a(t(new ReferenceError()), true, "ReferenceError");
+       a(t(new SyntaxError()), true, "SyntaxError");
+       a(t(new TypeError()), true, "TypeError");
+       a(t(new URIError()), true, "URIError");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/error/valid-error.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/error/valid-error.js
new file mode 100644 (file)
index 0000000..e04cdb3
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var e = new Error();
+       a(t(e), e, "Error");
+       a.throws(function () {
+               t({});
+       }, "Other");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/compose.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/compose.js
new file mode 100644 (file)
index 0000000..83de5e8
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var f = function (a, b) { return ['a', arguments.length, a, b]; }
+  , g = function (a) { return ['b', arguments.length].concat(a); }
+  , h = function (a) { return ['c', arguments.length].concat(a); };
+
+module.exports = function (t, a) {
+       a.deep(t.call(h, g, f)(1, 2), ['c', 1, 'b', 1, 'a', 2, 1, 2]);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/copy.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/copy.js
new file mode 100644 (file)
index 0000000..7a22e2f
--- /dev/null
@@ -0,0 +1,19 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var foo = 'raz', bar = 'dwa'
+         , fn = function marko(a, b) { return this + a + b + foo + bar; }
+         , result, o = {};
+
+       fn.prototype = o;
+
+       fn.foo = 'raz';
+
+       result = t.call(fn);
+
+       a(result.length, fn.length, "Length");
+       a(result.name, fn.name, "Length");
+       a(result.call('marko', 'el', 'fe'), 'markoelferazdwa', "Body");
+       a(result.prototype, fn.prototype, "Prototype");
+       a(result.foo, fn.foo, "Custom property");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/curry.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/curry.js
new file mode 100644 (file)
index 0000000..18fb038
--- /dev/null
@@ -0,0 +1,18 @@
+'use strict';
+
+var toArray = require('../../../array/to-array')
+
+  , f = function () { return toArray(arguments); };
+
+module.exports = function (t, a) {
+       var x, y = {}, z;
+       a.deep(t.call(f, 0, 1, 2)(3), [], "0 arguments");
+       x = t.call(f, 5, {});
+       a(x.length, 5, "Length #1");
+       z = x(1, 2);
+       a(z.length, 3, "Length #2");
+       z = z(3, 4);
+       a(z.length, 1, "Length #1");
+       a.deep(z(5, 6), [1, 2, 3, 4, 5], "Many arguments");
+       a.deep(x(8, 3)(y, 45)('raz', 6), [8, 3, y, 45, 'raz'], "Many arguments #2");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/lock.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/lock.js
new file mode 100644 (file)
index 0000000..44a12d7
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call(function () {
+               return arguments.length;
+       })(1, 2, 3), 0);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/not.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/not.js
new file mode 100644 (file)
index 0000000..c0f5e9d
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+var identity = require('../../../function/identity')
+  , noop     = require('../../../function/noop');
+
+module.exports = function (t, a) {
+       a(t.call(identity)(''), true, "Falsy");
+       a(t.call(noop)(), true, "Undefined");
+       a(t.call(identity)({}), false, "Any object");
+       a(t.call(identity)(true), false, "True");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/partial.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/partial.js
new file mode 100644 (file)
index 0000000..bd00ce7
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var toArray = require('../../../array/to-array')
+
+  , f = function () { return toArray(arguments); };
+
+module.exports = function (t, a) {
+       a.deep(t.call(f, 1)(2, 3), [1, 2, 3]);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/spread.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/spread.js
new file mode 100644 (file)
index 0000000..b82dfec
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var f = function (a, b) { return this[a] + this[b]; }
+  , o = { a: 3, b: 4 };
+
+module.exports = function (t, a) {
+       a(t.call(f).call(o, ['a', 'b']), 7);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/to-string-tokens.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#/to-string-tokens.js
new file mode 100644 (file)
index 0000000..4c54d30
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a.deep(t.call(function (a, b) { return this[a] + this[b]; }),
+               { args: 'a, b', body: ' return this[a] + this[b]; ' });
+       a.deep(t.call(function () {}),
+               { args: '', body: '' });
+       a.deep(t.call(function (raz) {}),
+               { args: 'raz', body: '' });
+       a.deep(t.call(function () { Object(); }),
+               { args: '', body: ' Object(); ' });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/_define-length.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/_define-length.js
new file mode 100644 (file)
index 0000000..8f037e8
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var foo = 'raz', bar = 'dwa'
+         , fn = function (a, b) { return this + a + b + foo + bar; }
+         , result;
+
+       result = t(fn, 3);
+       a(result.call('marko', 'el', 'fe'), 'markoelferazdwa', "Content");
+       a(result.length, 3, "Length");
+       a(result.prototype, fn.prototype, "Prototype");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/constant.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/constant.js
new file mode 100644 (file)
index 0000000..fda52aa
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var o = {};
+
+module.exports = function (t, a) {
+       a(t(o)(), o);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/identity.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/identity.js
new file mode 100644 (file)
index 0000000..8013e2e
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var o = {};
+
+module.exports = function (t, a) {
+       a(t(o), o);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/invoke.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/invoke.js
new file mode 100644 (file)
index 0000000..fcce4aa
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+var constant = require('../../function/constant')
+
+  , o = { b: constant('c') };
+
+module.exports = function (t, a) {
+       a(t('b')(o), 'c');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/is-arguments.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/is-arguments.js
new file mode 100644 (file)
index 0000000..f8de881
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var args, dummy;
+       args = (function () { return arguments; }());
+       dummy = { '0': 1, '1': 2 };
+       Object.defineProperty(dummy, 'length', { value: 2 });
+       a(t(args), true, "Arguments");
+       a(t(dummy), false, "Dummy");
+       a(t([]), false, "Array");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/is-function.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/is-function.js
new file mode 100644 (file)
index 0000000..83acc42
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var o = { call: Function.prototype.call, apply: Function.prototype.apply };
+
+module.exports = function (t, a) {
+       a(t(function () {}), true, "Function is function");
+       a(t(o), false, "Plain object is not function");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/noop.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/noop.js
new file mode 100644 (file)
index 0000000..4305c6f
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(typeof t(1, 2, 3), 'undefined');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/pluck.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/pluck.js
new file mode 100644 (file)
index 0000000..5bf9583
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+var o = { foo: 'bar' };
+
+module.exports = function (t, a) {
+       a(t('foo')(o), o.foo);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/valid-function.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/valid-function.js
new file mode 100644 (file)
index 0000000..59b1623
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var f = function () {};
+       a(t(f), f, "Function");
+       f = new Function();
+       a(t(f), f, "Function");
+       a.throws(function () {
+               t({});
+       }, "Object");
+       a.throws(function () {
+               t(/re/);
+       }, "RegExp");
+       a.throws(function () {
+               t({ call: function () { return 20; } });
+       }, "Plain object");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/global.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/global.js
new file mode 100644 (file)
index 0000000..1f452ae
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a.ok(t && typeof t === 'object');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/iterable/for-each.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/iterable/for-each.js
new file mode 100644 (file)
index 0000000..0fed8ad
--- /dev/null
@@ -0,0 +1,40 @@
+'use strict';
+
+var ArrayIterator = require('es6-iterator/array')
+
+  , slice = Array.prototype.slice;
+
+module.exports = function (t, a) {
+       var i = 0, x = ['raz', 'dwa', 'trzy'], y = {};
+       t(x, function () {
+               a.deep(slice.call(arguments, 0, 1), [x[i]], "Array " + i + "#");
+               a(this, y, "Array: context:  " + (i++) + "#");
+       }, y);
+       i = 0;
+       t((function () { return arguments; }('raz', 'dwa', 'trzy')), function () {
+               a.deep(slice.call(arguments, 0, 1), [x[i]], "Arguments" + i + "#");
+               a(this, y, "Arguments: context:  " + (i++) + "#");
+       }, y);
+       i = 0;
+       t({ 0: 'raz', 1: 'dwa', 2: 'trzy', length: 3 }, function () {
+               a.deep(slice.call(arguments, 0, 1), [x[i]], "Array-like" + i + "#");
+               a(this, y, "Array-like: context:  " + (i++) + "#");
+       }, y);
+       i = 0;
+       t(x = 'foo', function () {
+               a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#");
+               a(this, y, "Regular String: context:  " + (i++) + "#");
+       }, y);
+       i = 0;
+       x = ['r', '💩', 'z'];
+       t('r💩z', function () {
+               a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#");
+               a(this, y, "Unicode String: context:  " + (i++) + "#");
+       }, y);
+       i = 0;
+       t(new ArrayIterator(x), function () {
+               a.deep(slice.call(arguments, 0, 1), [x[i]], "Iterator " + i + "#");
+               a(this, y, "Iterator: context:  " + (i++) + "#");
+       }, y);
+
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/iterable/is.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/iterable/is.js
new file mode 100644 (file)
index 0000000..c0d2a43
--- /dev/null
@@ -0,0 +1,20 @@
+'use strict';
+
+var iteratorSymbol = require('es6-symbol').iterator;
+
+module.exports = function (t, a) {
+       var x;
+       a(t([]), true, "Array");
+       a(t(""), true, "String");
+       a(t((function () { return arguments; }())), true, "Arguments");
+       a(t({ length: 0 }), true, "List object");
+       a(t(function () {}), false, "Function");
+       a(t({}), false, "Plain object");
+       a(t(/raz/), false, "Regexp");
+       a(t(), false, "No argument");
+       a(t(null), false, "Null");
+       a(t(undefined), false, "Undefined");
+       x = {};
+       x[iteratorSymbol] = function () {};
+       a(t(x), true, "Iterable");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/iterable/validate-object.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/iterable/validate-object.js
new file mode 100644 (file)
index 0000000..da12529
--- /dev/null
@@ -0,0 +1,20 @@
+'use strict';
+
+var iteratorSymbol = require('es6-symbol').iterator;
+
+module.exports = function (t, a) {
+       var x;
+       a.throws(function () { t(0); }, TypeError, "0");
+       a.throws(function () { t(false); }, TypeError, "false");
+       a.throws(function () { t(''); }, TypeError, "String");
+       a.throws(function () { t({}); }, TypeError, "Plain Object");
+       a.throws(function () { t(function () {}); }, TypeError, "Function");
+       a(t(x = new String('raz')), x, "String object"); //jslint: ignore
+
+       a(t(x = { length: 1 }), x, "Array like");
+       a.throws(function () { t(); }, TypeError, "Undefined");
+       a.throws(function () { t(null); }, TypeError, "null");
+       x = {};
+       x[iteratorSymbol] = function () {};
+       a(t(x), x, "Iterable");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/iterable/validate.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/iterable/validate.js
new file mode 100644 (file)
index 0000000..bcc2ad3
--- /dev/null
@@ -0,0 +1,20 @@
+'use strict';
+
+var iteratorSymbol = require('es6-symbol').iterator;
+
+module.exports = function (t, a) {
+       var x;
+       a.throws(function () { t(0); }, TypeError, "0");
+       a.throws(function () { t(false); }, TypeError, "false");
+       a(t(''), '', "''");
+       a.throws(function () { t({}); }, TypeError, "Plain Object");
+       a.throws(function () { t(function () {}); }, TypeError, "Function");
+       a(t(x = new String('raz')), x, "String object"); //jslint: ignore
+
+       a(t(x = { length: 1 }), x, "Array like");
+       a.throws(function () { t(); }, TypeError, "Undefined");
+       a.throws(function () { t(null); }, TypeError, "null");
+       x = {};
+       x[iteratorSymbol] = function () {};
+       a(t(x), x, "Iterable");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/_pack-ieee754.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/_pack-ieee754.js
new file mode 100644 (file)
index 0000000..9041431
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a.deep(t(1.337, 8, 23), [63, 171, 34, 209]);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/_unpack-ieee754.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/_unpack-ieee754.js
new file mode 100644 (file)
index 0000000..ca30b82
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a.deep(t([63, 171, 34, 209], 8, 23), 1.3370000123977661);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/acosh/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/acosh/implement.js
new file mode 100644 (file)
index 0000000..01fb6d0
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/acosh/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/acosh/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/acosh/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/acosh/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/acosh/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/acosh/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/acosh/shim.js
new file mode 100644 (file)
index 0000000..3d710c7
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), NaN, "NaN");
+       a(t(-1), NaN, "Negative");
+       a(t(0), NaN, "Zero");
+       a(t(0.5), NaN, "Below 1");
+       a(t(1), 0, "1");
+       a(t(2), 1.3169578969248166, "Other");
+       a(t(Infinity), Infinity, "Infinity");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/asinh/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/asinh/implement.js
new file mode 100644 (file)
index 0000000..d1fcece
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/asinh/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/asinh/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/asinh/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/asinh/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/asinh/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/asinh/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/asinh/shim.js
new file mode 100644 (file)
index 0000000..d9fbe49
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), NaN, "NaN");
+       a(t(0), 0, "Zero");
+       a(t(Infinity), Infinity, "Infinity");
+       a(t(-Infinity), -Infinity, "-Infinity");
+       a(t(-2), -1.4436354751788103, "Negative");
+       a(t(2), 1.4436354751788103, "Positive");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/atanh/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/atanh/implement.js
new file mode 100644 (file)
index 0000000..cba8fad
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/atanh/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/atanh/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/atanh/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/atanh/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/atanh/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/atanh/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/atanh/shim.js
new file mode 100644 (file)
index 0000000..a857b49
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), NaN, "NaN");
+       a(t(-2), NaN, "Less than -1");
+       a(t(2), NaN, "Greater than 1");
+       a(t(-1), -Infinity, "-1");
+       a(t(1), Infinity, "1");
+       a(t(0), 0, "Zero");
+       a(t(0.5), 0.5493061443340549, "Ohter");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cbrt/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cbrt/implement.js
new file mode 100644 (file)
index 0000000..374d4b3
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/cbrt/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cbrt/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cbrt/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cbrt/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cbrt/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cbrt/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cbrt/shim.js
new file mode 100644 (file)
index 0000000..43ab68b
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), NaN, "NaN");
+       a(t(0), 0, "Zero");
+       a(t(Infinity), Infinity, "Infinity");
+       a(t(-Infinity), -Infinity, "-Infinity");
+       a(t(-1), -1, "-1");
+       a(t(1), 1, "1");
+       a(t(2), 1.2599210498948732, "Ohter");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/clz32/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/clz32/implement.js
new file mode 100644 (file)
index 0000000..44f8815
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/clz32/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/clz32/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/clz32/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/clz32/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/clz32/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/clz32/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/clz32/shim.js
new file mode 100644 (file)
index 0000000..a769b39
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t(1), 31, "1");
+       a(t(1000), 22, "1000");
+       a(t(), 32, "No arguments");
+       a(t(Infinity), 32, "Infinity");
+       a(t(-Infinity), 32, "-Infinity");
+       a(t("foo"), 32, "String");
+       a(t(true), 31, "Boolean");
+       a(t(3.5), 30, "Float");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cosh/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cosh/implement.js
new file mode 100644 (file)
index 0000000..f3c712b
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/cosh/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cosh/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cosh/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cosh/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cosh/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cosh/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cosh/shim.js
new file mode 100644 (file)
index 0000000..419c123
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), NaN, "NaN");
+       a(t(0), 1, "Zero");
+       a(t(Infinity), Infinity, "Infinity");
+       a(t(-Infinity), Infinity, "-Infinity");
+       a(t(1), 1.5430806348152437, "1");
+       a(t(Number.MAX_VALUE), Infinity);
+       a(t(-Number.MAX_VALUE), Infinity);
+       a(t(Number.MIN_VALUE), 1);
+       a(t(-Number.MIN_VALUE), 1);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/expm1/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/expm1/implement.js
new file mode 100644 (file)
index 0000000..c212967
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/expm1/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/expm1/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/expm1/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/expm1/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/expm1/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/expm1/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/expm1/shim.js
new file mode 100644 (file)
index 0000000..15f0e79
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), NaN, "NaN");
+       a(t(0), 0, "Zero");
+       a(t(Infinity), Infinity, "Infinity");
+       a(t(-Infinity), -1, "-Infinity");
+       a(t(1).toFixed(15), '1.718281828459045', "1");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/fround/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/fround/implement.js
new file mode 100644 (file)
index 0000000..c909af7
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/fround/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/fround/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/fround/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/fround/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/fround/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/fround/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/fround/shim.js
new file mode 100644 (file)
index 0000000..4ef6d4e
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), NaN, "NaN");
+       a(t(0), 0, "Zero");
+       a(t(Infinity), Infinity, "Infinity");
+       a(t(-Infinity), -Infinity, "-Infinity");
+       a(t(1.337), 1.3370000123977661, "1");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/hypot/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/hypot/implement.js
new file mode 100644 (file)
index 0000000..9946646
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/hypot/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/hypot/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/hypot/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/hypot/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/hypot/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/hypot/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/hypot/shim.js
new file mode 100644 (file)
index 0000000..91d950a
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t(), 0, "No arguments");
+       a(t(0, -0, 0), 0, "Zeros");
+       a(t(4, NaN, Infinity), Infinity, "Infinity");
+       a(t(4, NaN, -Infinity), Infinity, "Infinity");
+       a(t(4, NaN, 34), NaN, "NaN");
+       a(t(3, 4), 5, "#1");
+       a(t(3, 4, 5), 7.0710678118654755, "#2");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/imul/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/imul/implement.js
new file mode 100644 (file)
index 0000000..7b2a2a6
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/imul/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/imul/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/imul/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/imul/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/imul/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/imul/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/imul/shim.js
new file mode 100644 (file)
index 0000000..a2ca7fe
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t(), 0, "No arguments");
+       a(t(0, 0), 0, "Zeros");
+       a(t(2, 4), 8, "#1");
+       a(t(-1, 8), -8, "#2");
+       a(t(0xfffffffe, 5), -10, "#3");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log10/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log10/implement.js
new file mode 100644 (file)
index 0000000..4b3b4a4
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/log10/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log10/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log10/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log10/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log10/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log10/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log10/shim.js
new file mode 100644 (file)
index 0000000..5fa0d5b
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), NaN, "NaN");
+       a(t(-0.5), NaN, "Less than 0");
+       a(t(0), -Infinity, "0");
+       a(t(1), 0, "1");
+       a(t(Infinity), Infinity, "Infinity");
+       a(t(2), 0.3010299956639812, "Other");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log1p/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log1p/implement.js
new file mode 100644 (file)
index 0000000..5d269bd
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/log1p/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log1p/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log1p/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log1p/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log1p/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log1p/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log1p/shim.js
new file mode 100644 (file)
index 0000000..d495ce0
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), NaN, "NaN");
+       a(t(-1.5), NaN, "Less than -1");
+       a(t(-1), -Infinity, "-1");
+       a(t(0), 0, "0");
+       a(t(Infinity), Infinity, "Infinity");
+       a(t(1), 0.6931471805599453, "Other");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log2/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log2/implement.js
new file mode 100644 (file)
index 0000000..92b501a
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/log2/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log2/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log2/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log2/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log2/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log2/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log2/shim.js
new file mode 100644 (file)
index 0000000..faa9c32
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), NaN, "NaN");
+       a(t(-0.5), NaN, "Less than 0");
+       a(t(0), -Infinity, "0");
+       a(t(1), 0, "1");
+       a(t(Infinity), Infinity, "Infinity");
+       a(t(3).toFixed(15), '1.584962500721156', "Other");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sign/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sign/implement.js
new file mode 100644 (file)
index 0000000..5875c42
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/sign/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sign/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sign/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sign/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sign/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sign/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sign/shim.js
new file mode 100644 (file)
index 0000000..b6b89c1
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+var is = require('../../../object/is');
+
+module.exports = function (t, a) {
+       a(is(t(0), +0), true, "+0");
+       a(is(t(-0), -0), true, "-0");
+       a(t({}), NaN, true, "NaN");
+       a(t(-234234234), -1, "Negative");
+       a(t(234234234), 1, "Positive");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sinh/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sinh/implement.js
new file mode 100644 (file)
index 0000000..e52089e
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/sinh/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sinh/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sinh/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sinh/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sinh/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sinh/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sinh/shim.js
new file mode 100644 (file)
index 0000000..4f63b59
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), NaN, "NaN");
+       a(t(0), 0, "Zero");
+       a(t(Infinity), Infinity, "Infinity");
+       a(t(-Infinity), -Infinity, "-Infinity");
+       a(t(1), 1.1752011936438014, "1");
+       a(t(Number.MAX_VALUE), Infinity);
+       a(t(-Number.MAX_VALUE), -Infinity);
+       a(t(Number.MIN_VALUE), 5e-324);
+       a(t(-Number.MIN_VALUE), -5e-324);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/tanh/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/tanh/implement.js
new file mode 100644 (file)
index 0000000..a96bf19
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/tanh/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/tanh/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/tanh/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/tanh/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/tanh/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/tanh/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/tanh/shim.js
new file mode 100644 (file)
index 0000000..2c67aaf
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), NaN, "NaN");
+       a(t(0), 0, "Zero");
+       a(t(Infinity), 1, "Infinity");
+       a(t(-Infinity), -1, "-Infinity");
+       a(t(1), 0.7615941559557649, "1");
+       a(t(Number.MAX_VALUE), 1);
+       a(t(-Number.MAX_VALUE), -1);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/trunc/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/trunc/implement.js
new file mode 100644 (file)
index 0000000..1830e61
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../math/trunc/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/trunc/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/trunc/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/trunc/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/trunc/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/trunc/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/trunc/shim.js
new file mode 100644 (file)
index 0000000..9e5eed7
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var is = require('../../../object/is');
+
+module.exports = function (t, a) {
+       a(t({}), NaN, "NaN");
+       a(t(0), 0, "Zero");
+       a(t(Infinity), Infinity, "Infinity");
+       a(t(-Infinity), -Infinity, "-Infinity");
+       a(is(t(0.234), 0), true, "0");
+       a(is(t(-0.234), -0), true, "-0");
+       a(t(13.7), 13, "Positive #1");
+       a(t(12.3), 12, "Positive #2");
+       a(t(-12.3), -12, "Negative #1");
+       a(t(-14.7), -14, "Negative #2");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/#/pad.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/#/pad.js
new file mode 100644 (file)
index 0000000..e020823
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call(78, 4), '0078');
+       a(t.call(65.12323, 4, 3), '0065.123', "Precision");
+       a(t.call(65, 4, 3), '0065.000', "Precision integer");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/epsilon/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/epsilon/implement.js
new file mode 100644 (file)
index 0000000..574da75
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../number/epsilon/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/epsilon/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/epsilon/index.js
new file mode 100644 (file)
index 0000000..c892fd4
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(typeof t, 'number');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/epsilon/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/epsilon/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-finite/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-finite/implement.js
new file mode 100644 (file)
index 0000000..b35345f
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../number/is-finite/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-finite/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-finite/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-finite/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-finite/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-finite/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-finite/shim.js
new file mode 100644 (file)
index 0000000..5205d1c
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t(2), true, "Number");
+       a(t('23'), false, "Not numeric");
+       a(t(NaN), false, "NaN");
+       a(t(Infinity), false, "Infinity");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-integer/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-integer/implement.js
new file mode 100644 (file)
index 0000000..127149c
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../number/is-integer/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-integer/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-integer/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-integer/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-integer/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-integer/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-integer/shim.js
new file mode 100644 (file)
index 0000000..3f3985c
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t(2), true, "Number");
+       a(t(2.34), false, "Float");
+       a(t('23'), false, "Not numeric");
+       a(t(NaN), false, "NaN");
+       a(t(Infinity), false, "Infinity");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-nan/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-nan/implement.js
new file mode 100644 (file)
index 0000000..2f01d6d
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../number/is-nan/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-nan/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-nan/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-nan/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-nan/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-nan/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-nan/shim.js
new file mode 100644 (file)
index 0000000..425723e
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t(2), false, "Number");
+       a(t({}), false, "Not numeric");
+       a(t(NaN), true, "NaN");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-number.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-number.js
new file mode 100644 (file)
index 0000000..2751334
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t(0), true, "Zero");
+       a(t(NaN), true, "NaN");
+       a(t(Infinity), true, "Infinity");
+       a(t(12), true, "Number");
+       a(t(false), false, "Boolean");
+       a(t(new Date()), false, "Date");
+       a(t(new Number(2)), true, "Number object");
+       a(t('asdfaf'), false, "String");
+       a(t(''), false, "Empty String");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-safe-integer/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-safe-integer/implement.js
new file mode 100644 (file)
index 0000000..33667e2
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../number/is-safe-integer/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-safe-integer/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-safe-integer/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-safe-integer/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-safe-integer/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-safe-integer/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-safe-integer/shim.js
new file mode 100644 (file)
index 0000000..77e0667
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t(2), true, "Number");
+       a(t(2.34), false, "Float");
+       a(t(Math.pow(2, 53)), false, "Too large");
+       a(t(Math.pow(2, 53) - 1), true, "Maximum");
+       a(t('23'), false, "Not numeric");
+       a(t(NaN), false, "NaN");
+       a(t(Infinity), false, "Infinity");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/max-safe-integer/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/max-safe-integer/implement.js
new file mode 100644 (file)
index 0000000..bef00ca
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../number/max-safe-integer/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/max-safe-integer/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/max-safe-integer/index.js
new file mode 100644 (file)
index 0000000..c892fd4
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(typeof t, 'number');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/max-safe-integer/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/max-safe-integer/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/min-safe-integer/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/min-safe-integer/implement.js
new file mode 100644 (file)
index 0000000..fa44024
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../number/min-safe-integer/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/min-safe-integer/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/min-safe-integer/index.js
new file mode 100644 (file)
index 0000000..c892fd4
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(typeof t, 'number');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/min-safe-integer/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/min-safe-integer/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/to-integer.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/to-integer.js
new file mode 100644 (file)
index 0000000..ff326ba
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), 0, "NaN");
+       a(t(20), 20, "Positive integer");
+       a(t('-20'), -20, "String negative integer");
+       a(t(Infinity), Infinity, "Infinity");
+       a(t(15.343), 15, "Float");
+       a(t(-15.343), -15, "Negative float");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/to-pos-integer.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/to-pos-integer.js
new file mode 100644 (file)
index 0000000..2f3b4e6
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), 0, "NaN");
+       a(t(20), 20, "Positive integer");
+       a(t(-20), 0, "Negative integer");
+       a(t(Infinity), Infinity, "Infinity");
+       a(t(15.343), 15, "Float");
+       a(t(-15.343), 0, "Negative float");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/to-uint32.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/to-uint32.js
new file mode 100644 (file)
index 0000000..00d05bd
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), 0, "Not numeric");
+       a(t(-4), 4294967292, "Negative");
+       a(t(133432), 133432, "Positive");
+       a(t(8589934592), 0, "Greater than maximum");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/_iterate.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/_iterate.js
new file mode 100644 (file)
index 0000000..179afed
--- /dev/null
@@ -0,0 +1,30 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var o = { raz: 1, dwa: 2, trzy: 3 }
+         , o2 = {}, o3 = {}, arr, i = -1;
+
+       t = t('forEach');
+       t(o, function (value, name, self, index) {
+               o2[name] = value;
+               a(index, ++i, "Index");
+               a(self, o, "Self");
+               a(this, o3, "Scope");
+       }, o3);
+       a.deep(o2, o);
+
+       arr = [];
+       o2 = {};
+       i = -1;
+       t(o, function (value, name, self, index) {
+               arr.push(value);
+               o2[name] = value;
+               a(index, ++i, "Index");
+               a(self, o, "Self");
+               a(this, o3, "Scope");
+       }, o3, function (a, b) {
+               return o[b] - o[a];
+       });
+       a.deep(o2, o, "Sort by Values: Content");
+       a.deep(arr, [3, 2, 1], "Sort by Values: Order");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/implement.js
new file mode 100644 (file)
index 0000000..4006559
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../object/assign/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/shim.js
new file mode 100644 (file)
index 0000000..9afe5f6
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var o1 = { a: 1, b: 2 }
+         , o2 = { b: 3, c: 4 };
+
+       a(t(o1, o2), o1, "Returns self");
+       a.deep(o1, { a: 1, b: 3, c: 4 }, "Single: content");
+
+       a.deep(t({}, o1, o2), { a: 1, b: 3, c: 4 }, "Multi argument");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/clear.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/clear.js
new file mode 100644 (file)
index 0000000..bfc08cc
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+var isEmpty = require('../../object/is-empty');
+
+module.exports = function (t, a) {
+       var x = {};
+       a(t(x), x, "Empty: Returns same object");
+       a(isEmpty(x), true, "Empty: Not changed");
+       x.foo = 'raz';
+       x.bar = 'dwa';
+       a(t(x), x, "Same object");
+       a(isEmpty(x), true, "Emptied");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/compact.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/compact.js
new file mode 100644 (file)
index 0000000..9c9064c
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x = {}, y = {}, z;
+       z = t(x);
+       a.not(z, x, "Returns different object");
+       a.deep(z, {}, "Empty on empty");
+
+       x = { foo: 'bar', a: 0, b: false, c: '', d: '0', e: null, bar: y,
+               elo: undefined };
+       z = t(x);
+       a.deep(z, { foo: 'bar', a: 0, b: false, c: '', d: '0', bar: y },
+               "Cleared null values");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/compare.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/compare.js
new file mode 100644 (file)
index 0000000..cb94241
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var d = new Date();
+
+       a.ok(t(12, 3) > 0, "Numbers");
+       a.ok(t(2, 13) < 0, "Numbers #2");
+       a.ok(t("aaa", "aa") > 0, "Strings");
+       a.ok(t("aa", "ab") < 0, "Strings #2");
+       a(t("aa", "aa"), 0, "Strings same");
+       a(t(d, new Date(d.getTime())), 0, "Same date");
+       a.ok(t(d, new Date(d.getTime() + 1)) < 0, "Different date");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/copy-deep.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/copy-deep.js
new file mode 100644 (file)
index 0000000..a4023bc
--- /dev/null
@@ -0,0 +1,24 @@
+'use strict';
+
+var stringify = JSON.stringify;
+
+module.exports = function (t, a) {
+       var o = { 1: 'raz', 2: 'dwa', 3: 'trzy' }
+         , no = t(o);
+
+       a.not(no, o, "Return different object");
+       a(stringify(no), stringify(o), "Match properties and values");
+
+       o = { foo: 'bar', raz: { dwa: 'dwa',
+               trzy: { cztery: 'pięć', 'sześć': 'siedem' }, osiem: {},
+               'dziewięć': function () { } }, 'dziesięć': 10 };
+       o.raz.rec = o;
+
+       no = t(o);
+       a.not(o.raz, no.raz, "Deep");
+       a.not(o.raz.trzy, no.raz.trzy, "Deep #2");
+       a(stringify(o.raz.trzy), stringify(no.raz.trzy), "Deep content");
+       a(no.raz.rec, no, "Recursive");
+       a.not(o.raz.osiem, no.raz.osiem, "Empty object");
+       a(o.raz['dziewięć'], no.raz['dziewięć'], "Function");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/copy.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/copy.js
new file mode 100644 (file)
index 0000000..2f222ef
--- /dev/null
@@ -0,0 +1,19 @@
+'use strict';
+
+var stringify = JSON.stringify;
+
+module.exports = function (t, a) {
+       var o = { 1: 'raz', 2: 'dwa', 3: 'trzy' }
+         , no = t(o);
+
+       a.not(no, o, "Return different object");
+       a(stringify(no), stringify(o), "Match properties and values");
+
+       o = { foo: 'bar', raz: { dwa: 'dwa',
+               trzy: { cztery: 'pięć', 'sześć': 'siedem' }, osiem: {},
+               'dziewięć': function () { } }, 'dziesięć': 10 };
+       o.raz.rec = o;
+
+       no = t(o);
+       a(o.raz, no.raz, "Shallow");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/count.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/count.js
new file mode 100644 (file)
index 0000000..494f4f1
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), 0, "Empty");
+       a(t({ raz: 1, dwa: null, trzy: undefined, cztery: 0 }), 4,
+               "Some properties");
+       a(t(Object.defineProperties({}, {
+               raz: { value: 'raz' },
+               dwa: { value: 'dwa', enumerable: true }
+       })), 1, "Some properties hidden");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/create.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/create.js
new file mode 100644 (file)
index 0000000..8b7be21
--- /dev/null
@@ -0,0 +1,22 @@
+'use strict';
+
+var setPrototypeOf = require('../../object/set-prototype-of')
+
+  , getPrototypeOf = Object.getPrototypeOf;
+
+module.exports = function (t, a) {
+       var x = {}, obj;
+
+       a(getPrototypeOf(t(x)), x, "Normal object");
+       a(getPrototypeOf(t(null)),
+               (setPrototypeOf && setPrototypeOf.nullPolyfill) || null, "Null");
+
+       a.h1("Properties");
+       a.h2("Normal object");
+       a(getPrototypeOf(obj = t(x, { foo: { value: 'bar' } })), x, "Prototype");
+       a(obj.foo, 'bar', "Property");
+       a.h2("Null");
+       a(getPrototypeOf(obj = t(null, { foo: { value: 'bar2' } })),
+               (setPrototypeOf && setPrototypeOf.nullPolyfill) || null, "Prototype");
+       a(obj.foo, 'bar2', "Property");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/eq.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/eq.js
new file mode 100644 (file)
index 0000000..02b3f00
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var o = {};
+       a(t(o, {}), false, "Different objects");
+       a(t(o, o), true, "Same objects");
+       a(t('1', '1'), true, "Same primitive");
+       a(t('1', 1), false, "Different primitive types");
+       a(t(NaN, NaN), true, "NaN");
+       a(t(0, 0), true, "0,0");
+       a(t(0, -0), true, "0,-0");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/every.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/every.js
new file mode 100644 (file)
index 0000000..07d5bbb
--- /dev/null
@@ -0,0 +1,21 @@
+'use strict';
+
+var o = { 1: 1, 2: 2, 3: 3 };
+
+module.exports = function (t, a) {
+       var o2 = {};
+       t(o, function (value, name) {
+               o2[name] = value;
+               return true;
+       });
+       a(JSON.stringify(o2), JSON.stringify(o), "Iterates");
+
+       a(t(o, function () {
+               return true;
+       }), true, "Succeeds");
+
+       a(t(o, function () {
+               return false;
+       }), false, "Fails");
+
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/filter.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/filter.js
new file mode 100644 (file)
index 0000000..7307da8
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a.deep(t({ 1: 1, 2: 2, 3: 3, 4: 4 },
+               function (value) { return Boolean(value % 2); }), { 1: 1, 3: 3 });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/first-key.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/first-key.js
new file mode 100644 (file)
index 0000000..8169cd2
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x = {}, y = Object.create(null);
+       a(t(x), null, "Normal: Empty");
+       a(t(y), null, "Null extension: Empty");
+       x.foo = 'raz';
+       x.bar = 343;
+       a(['foo', 'bar'].indexOf(t(x)) !== -1, true, "Normal");
+       y.elo = 'foo';
+       y.mar = 'wew';
+       a(['elo', 'mar'].indexOf(t(y)) !== -1, true, "Null extension");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/flatten.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/flatten.js
new file mode 100644 (file)
index 0000000..ca342ea
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a.deep(t({ a: { aa: 1, ab: 2 }, b: { ba: 3, bb: 4 } }),
+               { aa: 1, ab: 2, ba: 3, bb: 4 });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/for-each.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/for-each.js
new file mode 100644 (file)
index 0000000..8690d1e
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var o = { raz: 1, dwa: 2, trzy: 3 }
+         , o2 = {};
+       a(t(o, function (value, name) {
+               o2[name] = value;
+       }), undefined, "Return");
+       a.deep(o2, o);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/get-property-names.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/get-property-names.js
new file mode 100644 (file)
index 0000000..b91c3dd
--- /dev/null
@@ -0,0 +1,18 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var o = { first: 1, second: 4 }, r1, r2;
+       o = Object.create(o, {
+               third: { value: null }
+       });
+       o.first = 2;
+       o = Object.create(o);
+       o.fourth = 3;
+
+       r1 = t(o);
+       r1.sort();
+       r2 = ['first', 'second', 'third', 'fourth']
+               .concat(Object.getOwnPropertyNames(Object.prototype));
+       r2.sort();
+       a.deep(r1, r2);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-array-like.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-array-like.js
new file mode 100644 (file)
index 0000000..6295973
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t([]), true, "Array");
+       a(t(""), true, "String");
+       a(t((function () { return arguments; }())), true, "Arguments");
+       a(t({ length: 0 }), true, "List object");
+       a(t(function () {}), false, "Function");
+       a(t({}), false, "Plain object");
+       a(t(/raz/), false, "Regexp");
+       a(t(), false, "No argument");
+       a(t(null), false, "Null");
+       a(t(undefined), false, "Undefined");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-callable.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-callable.js
new file mode 100644 (file)
index 0000000..625e221
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t(function () {}), true, "Function");
+       a(t({}), false, "Object");
+       a(t(), false, "Undefined");
+       a(t(null), false, "Null");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-copy-deep.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-copy-deep.js
new file mode 100644 (file)
index 0000000..4f14cbb
--- /dev/null
@@ -0,0 +1,46 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x, y;
+
+       a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 3 }), true, "Same");
+       a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 4 }), false,
+               "Different property value");
+       a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2 }), false,
+               "Property only in source");
+       a(t({ 1: 1, 2: 2 }, { 1: 1, 2: 2, 3: 4 }), false,
+               "Property only in target");
+
+       a(t("raz", "dwa"), false, "String: diff");
+       a(t("raz", "raz"), true, "String: same");
+       a(t("32", 32), false, "String & Number");
+
+       a(t([1, 'raz', true], [1, 'raz', true]), true, "Array: same");
+       a(t([1, 'raz', undefined], [1, 'raz']), false, "Array: diff");
+       a(t(['foo'], ['one']), false, "Array: One value comparision");
+
+       x = { foo: { bar: { mar: {} } } };
+       y = { foo: { bar: { mar: {} } } };
+       a(t(x, y), true, "Deep");
+
+       a(t({ foo: { bar: { mar: 'foo' } } }, { foo: { bar: { mar: {} } } }),
+               false, "Deep: false");
+
+       x = { foo: { bar: { mar: {} } } };
+       x.rec = { foo: x };
+
+       y = { foo: { bar: { mar: {} } } };
+       y.rec = { foo: x };
+
+       a(t(x, y), true, "Object: Infinite Recursion: Same #1");
+
+       x.rec.foo = y;
+       a(t(x, y), true, "Object: Infinite Recursion: Same #2");
+
+       x.rec.foo = x;
+       y.rec.foo = y;
+       a(t(x, y), true, "Object: Infinite Recursion: Same #3");
+
+       y.foo.bar.mar = 'raz';
+       a(t(x, y), false, "Object: Infinite Recursion: Diff");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-copy.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-copy.js
new file mode 100644 (file)
index 0000000..394e2ed
--- /dev/null
@@ -0,0 +1,18 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 3 }), true, "Same");
+       a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 4 }), false,
+               "Different property value");
+       a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2 }), false,
+               "Property only in source");
+       a(t({ 1: 1, 2: 2 }, { 1: 1, 2: 2, 3: 4 }), false,
+               "Property only in target");
+
+       a(t("raz", "dwa"), false, "String: diff");
+       a(t("raz", "raz"), true, "String: same");
+       a(t("32", 32), false, "String & Number");
+
+       a(t([1, 'raz', true], [1, 'raz', true]), true, "Array: same");
+       a(t([1, 'raz', undefined], [1, 'raz']), false, "Array: diff");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-empty.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-empty.js
new file mode 100644 (file)
index 0000000..b560c2c
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), true, "Empty");
+       a(t({ 1: 1 }), false, "Not empty");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-object.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-object.js
new file mode 100644 (file)
index 0000000..72c8aa6
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t('arar'), false, "String");
+       a(t(12), false, "Number");
+       a(t(true), false, "Boolean");
+       a(t(null), false, "Null");
+       a(t(new Date()), true, "Date");
+       a(t(new String('raz')), true, "String object");
+       a(t({}), true, "Plain object");
+       a(t(/a/), true, "Regular expression");
+       a(t(function () {}), true, "Function");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-plain-object.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-plain-object.js
new file mode 100644 (file)
index 0000000..e988829
--- /dev/null
@@ -0,0 +1,18 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t({}), true, "Empty {} is plain object");
+       a(t({ a: true }), true, "{} with property is plain object");
+       a(t({ prototype: 1, constructor: 2, __proto__:  3 }), true,
+               "{} with any property keys is plain object");
+       a(t(null), false, "Null is not plain object");
+       a(t('string'), false, "Primitive is not plain object");
+       a(t(function () {}), false, "Function is not plain object");
+       a(t(Object.create({})), false,
+               "Object whose prototype is not Object.prototype is not plain object");
+       a(t(Object.create(Object.prototype)), true,
+               "Object whose prototype is Object.prototype is plain object");
+       a(t(Object.create(null)), true,
+               "Object whose prototype is null is plain object");
+       a(t(Object.prototype), false, "Object.prototype");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is.js
new file mode 100644 (file)
index 0000000..4f8948c
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var o = {};
+       a(t(o, {}), false, "Different objects");
+       a(t(o, o), true, "Same objects");
+       a(t('1', '1'), true, "Same primitive");
+       a(t('1', 1), false, "Different primitive types");
+       a(t(NaN, NaN), true, "NaN");
+       a(t(0, 0), true, "0,0");
+       a(t(0, -0), false, "0,-0");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/key-of.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/key-of.js
new file mode 100644 (file)
index 0000000..a9225a0
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x = {}, y = {}
+         , o = { foo: 'bar', raz: x, trzy: 'cztery', five: '6' };
+
+       a(t(o, 'bar'), 'foo', "First property");
+       a(t(o, 6), null, "Primitive that's not there");
+       a(t(o, x), 'raz', "Object");
+       a(t(o, y), null, "Object that's not there");
+       a(t(o, '6'), 'five', "Last property");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/implement.js
new file mode 100644 (file)
index 0000000..179e1e5
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../object/keys/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/shim.js
new file mode 100644 (file)
index 0000000..ed29eeb
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a.deep(t({ foo: 'bar' }), ['foo'], "Object");
+       a.deep(t('raz'), ['0', '1', '2'], "Primitive");
+       a.throws(function () { t(); }, TypeError, "Undefined");
+       a.throws(function () { t(null); }, TypeError, "Undefined");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/map-keys.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/map-keys.js
new file mode 100644 (file)
index 0000000..be84825
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a.deep(t({ 1: 1, 2: 2, 3: 3 }, function (key, value) {
+               return 'x' + (key + value);
+       }), { x11: 1, x22: 2, x33: 3 });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/map.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/map.js
new file mode 100644 (file)
index 0000000..f9cc09c
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var obj = { 1: 1, 2: 2, 3: 3 };
+       a.deep(t(obj, function (value, key, context) {
+               a(context, obj, "Context argument");
+               return (value + 1) + key;
+       }), { 1: '21', 2: '32', 3: '43' });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/mixin-prototypes.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/mixin-prototypes.js
new file mode 100644 (file)
index 0000000..d1c727a
--- /dev/null
@@ -0,0 +1,67 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var o, o1, o2, x, y = {}, z = {};
+       o = { inherited: true, visible: 23 };
+       o1 = Object.create(o);
+       o1.visible = z;
+       o1.nonremovable = 'raz';
+       Object.defineProperty(o1, 'hidden', { value: 'hidden' });
+
+       o2 = Object.defineProperties({}, { nonremovable: { value: y } });
+       o2.other = 'other';
+
+       try { t(o2, o1); } catch (ignore) {}
+
+       a(o2.visible, z, "Enumerable");
+       a(o1.hidden, 'hidden', "Not Enumerable");
+       a(o2.propertyIsEnumerable('visible'), true, "Enumerable is enumerable");
+       a(o2.propertyIsEnumerable('hidden'), false,
+               "Not enumerable is not enumerable");
+
+       a(o2.inherited, true, "Extend deep");
+
+       a(o2.nonremovable, y, "Do not overwrite non configurable");
+       a(o2.other, 'other', "Own kept");
+
+       x = {};
+       t(x, o2);
+       try { t(x, o1); } catch (ignore) {}
+
+       a(x.visible, z, "Enumerable");
+       a(x.hidden, 'hidden', "Not Enumerable");
+       a(x.propertyIsEnumerable('visible'), true, "Enumerable is enumerable");
+       a(x.propertyIsEnumerable('hidden'), false,
+               "Not enumerable is not enumerable");
+
+       a(x.inherited, true, "Extend deep");
+
+       a(x.nonremovable, y, "Ignored non configurable");
+       a(x.other, 'other', "Other");
+
+       x.visible = 3;
+       a(x.visible, 3, "Writable is writable");
+
+       x = {};
+       t(x, o1);
+       a.throws(function () {
+               x.hidden = 3;
+       }, "Not writable is not writable");
+
+       x = {};
+       t(x, o1);
+       delete x.visible;
+       a.ok(!x.hasOwnProperty('visible'), "Configurable is configurable");
+
+       x = {};
+       t(x, o1);
+       a.throws(function () {
+               delete x.hidden;
+       }, "Not configurable is not configurable");
+
+       x = Object.defineProperty({}, 'foo',
+               { configurable: false, writable: true, enumerable: false, value: 'bar' });
+
+       try { t(x, { foo: 'lorem' }); } catch (ignore) {}
+       a(x.foo, 'bar', "Writable, not enumerable");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/mixin.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/mixin.js
new file mode 100644 (file)
index 0000000..866005b
--- /dev/null
@@ -0,0 +1,69 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var o, o1, o2, x, y = {}, z = {};
+       o = { inherited: true };
+       o1 = Object.create(o);
+       o1.visible = z;
+       o1.nonremovable = 'raz';
+       Object.defineProperty(o1, 'hidden', { value: 'hidden' });
+
+       o2 = Object.defineProperties({}, { nonremovable: { value: y } });
+       o2.other = 'other';
+
+       try { t(o2, o1); } catch (ignore) {}
+
+       a(o2.visible, z, "Enumerable");
+       a(o1.hidden, 'hidden', "Not Enumerable");
+       a(o2.propertyIsEnumerable('visible'), true, "Enumerable is enumerable");
+       a(o2.propertyIsEnumerable('hidden'), false,
+               "Not enumerable is not enumerable");
+
+       a(o2.hasOwnProperty('inherited'), false, "Extend only own");
+       a(o2.inherited, undefined, "Extend ony own: value");
+
+       a(o2.nonremovable, y, "Do not overwrite non configurable");
+       a(o2.other, 'other', "Own kept");
+
+       x = {};
+       t(x, o2);
+       try { t(x, o1); } catch (ignore) {}
+
+       a(x.visible, z, "Enumerable");
+       a(x.hidden, 'hidden', "Not Enumerable");
+       a(x.propertyIsEnumerable('visible'), true, "Enumerable is enumerable");
+       a(x.propertyIsEnumerable('hidden'), false,
+               "Not enumerable is not enumerable");
+
+       a(x.hasOwnProperty('inherited'), false, "Extend only own");
+       a(x.inherited, undefined, "Extend ony own: value");
+
+       a(x.nonremovable, y, "Ignored non configurable");
+       a(x.other, 'other', "Other");
+
+       x.visible = 3;
+       a(x.visible, 3, "Writable is writable");
+
+       x = {};
+       t(x, o1);
+       a.throws(function () {
+               x.hidden = 3;
+       }, "Not writable is not writable");
+
+       x = {};
+       t(x, o1);
+       delete x.visible;
+       a.ok(!x.hasOwnProperty('visible'), "Configurable is configurable");
+
+       x = {};
+       t(x, o1);
+       a.throws(function () {
+               delete x.hidden;
+       }, "Not configurable is not configurable");
+
+       x = Object.defineProperty({}, 'foo',
+               { configurable: false, writable: true, enumerable: false, value: 'bar' });
+
+       try { t(x, { foo: 'lorem' }); } catch (ignore) {}
+       a(x.foo, 'bar', "Writable, not enumerable");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/normalize-options.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/normalize-options.js
new file mode 100644 (file)
index 0000000..0d2d4da
--- /dev/null
@@ -0,0 +1,32 @@
+'use strict';
+
+var create = Object.create, defineProperty = Object.defineProperty;
+
+module.exports = function (t, a) {
+       var x = { foo: 'raz', bar: 'dwa' }, y;
+       y = t(x);
+       a.not(y, x, "Returns copy");
+       a.deep(y, x, "Plain");
+
+       x = { raz: 'one', dwa: 'two' };
+       defineProperty(x, 'get', {
+               configurable: true,
+               enumerable: true,
+               get: function () { return this.dwa; }
+       });
+       x = create(x);
+       x.trzy = 'three';
+       x.cztery = 'four';
+       x = create(x);
+       x.dwa = 'two!';
+       x.trzy = 'three!';
+       x.piec = 'five';
+       x.szesc = 'six';
+
+       a.deep(t(x), { raz: 'one', dwa: 'two!', trzy: 'three!', cztery: 'four',
+               piec: 'five', szesc: 'six', get: 'two!' }, "Deep object");
+
+       a.deep(t({ marko: 'raz', raz: 'foo' }, x, { szesc: 'elo', siedem: 'bibg' }),
+               { marko: 'raz', raz: 'one', dwa: 'two!', trzy: 'three!', cztery: 'four',
+                       piec: 'five', szesc: 'elo', siedem: 'bibg', get: 'two!' }, "Multiple options");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/primitive-set.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/primitive-set.js
new file mode 100644 (file)
index 0000000..839857e
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+var getPropertyNames = require('../../object/get-property-names')
+  , isPlainObject    = require('../../object/is-plain-object');
+
+module.exports = function (t, a) {
+       var x = t();
+       a(isPlainObject(x), true, "Plain object");
+       a.deep(getPropertyNames(x), [], "No properties");
+       x.foo = 'bar';
+       a.deep(getPropertyNames(x), ['foo'], "Extensible");
+
+       a.deep(t('raz', 'dwa', 3), { raz: true, dwa: true, 3: true },
+               "Arguments handling");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/safe-traverse.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/safe-traverse.js
new file mode 100644 (file)
index 0000000..d30cdef
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var obj = { foo: { bar: { lorem: 12  } } };
+       a(t(obj), obj, "No props");
+       a(t(obj, 'foo'), obj.foo, "One");
+       a(t(obj, 'raz'), undefined, "One: Fail");
+       a(t(obj, 'foo', 'bar'), obj.foo.bar, "Two");
+       a(t(obj, 'dsd', 'raz'), undefined, "Two: Fail #1");
+       a(t(obj, 'foo', 'raz'), undefined, "Two: Fail #2");
+       a(t(obj, 'foo', 'bar', 'lorem'), obj.foo.bar.lorem, "Three");
+       a(t(obj, 'dsd', 'raz', 'fef'), undefined, "Three: Fail #1");
+       a(t(obj, 'foo', 'raz', 'asdf'), undefined, "Three: Fail #2");
+       a(t(obj, 'foo', 'bar', 'asd'), undefined, "Three: Fail #3");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/serialize.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/serialize.js
new file mode 100644 (file)
index 0000000..43eed6a
--- /dev/null
@@ -0,0 +1,25 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var fn = function (raz, dwa) { return raz + dwa; };
+       a(t(), 'undefined', "Undefined");
+       a(t(null), 'null', "Null");
+       a(t(null), 'null', "Null");
+       a(t('raz'), '"raz"', "String");
+       a(t('raz"ddwa\ntrzy'), '"raz\\"ddwa\\ntrzy"', "String with escape");
+       a(t(false), 'false', "Booelean");
+       a(t(fn), String(fn), "Function");
+
+       a(t(/raz-dwa/g), '/raz-dwa/g', "RegExp");
+       a(t(new Date(1234567)), 'new Date(1234567)', "Date");
+       a(t([]), '[]', "Empty array");
+       a(t([undefined, false, null, 'raz"ddwa\ntrzy', fn, /raz/g, new Date(1234567), ['foo']]),
+               '[undefined,false,null,"raz\\"ddwa\\ntrzy",' + String(fn) +
+               ',/raz/g,new Date(1234567),["foo"]]', "Rich Array");
+       a(t({}), '{}', "Empty object");
+       a(t({ raz: undefined, dwa: false, trzy: null, cztery: 'raz"ddwa\ntrzy', piec: fn, szesc: /raz/g,
+               siedem: new Date(1234567), osiem: ['foo', 32], dziewiec: { foo: 'bar', dwa: 343 } }),
+               '{"raz":undefined,"dwa":false,"trzy":null,"cztery":"raz\\"ddwa\\ntrzy","piec":' + String(fn) +
+               ',"szesc":/raz/g,"siedem":new Date(1234567),"osiem":["foo",32],' +
+               '"dziewiec":{"foo":"bar","dwa":343}}', "Rich object");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/implement.js
new file mode 100644 (file)
index 0000000..30b2ac4
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+var create        = require('../../../object/create')
+  , isImplemented = require('../../../object/set-prototype-of/is-implemented');
+
+module.exports = function (a) { a(isImplemented(create), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/index.js
new file mode 100644 (file)
index 0000000..aec2605
--- /dev/null
@@ -0,0 +1,23 @@
+'use strict';
+
+var create = require('../../../object/create')
+
+  , getPrototypeOf = Object.getPrototypeOf;
+
+module.exports = function (t, a) {
+       var x = {}, y = {};
+
+       if (t === null) return;
+       a(t(x, y), x, "Return self object");
+       a(getPrototypeOf(x), y, "Object");
+       a.throws(function () { t(x); }, TypeError, "Undefined");
+       a.throws(function () { t('foo'); }, TypeError, "Primitive");
+       a(getPrototypeOf(t(x, null)), t.nullPolyfill || null, "Null");
+       x = create(null);
+       a.h1("Change null prototype");
+       a(t(x, y), x, "Result");
+       a(getPrototypeOf(x), y, "Prototype");
+       a.h1("Set null prototype");
+       a(t(y, null), y, "Result");
+       a(getPrototypeOf(y), t.nullPolyfill || null, "Prototype");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/shim.js
new file mode 100644 (file)
index 0000000..aec2605
--- /dev/null
@@ -0,0 +1,23 @@
+'use strict';
+
+var create = require('../../../object/create')
+
+  , getPrototypeOf = Object.getPrototypeOf;
+
+module.exports = function (t, a) {
+       var x = {}, y = {};
+
+       if (t === null) return;
+       a(t(x, y), x, "Return self object");
+       a(getPrototypeOf(x), y, "Object");
+       a.throws(function () { t(x); }, TypeError, "Undefined");
+       a.throws(function () { t('foo'); }, TypeError, "Primitive");
+       a(getPrototypeOf(t(x, null)), t.nullPolyfill || null, "Null");
+       x = create(null);
+       a.h1("Change null prototype");
+       a(t(x, y), x, "Result");
+       a(getPrototypeOf(x), y, "Prototype");
+       a.h1("Set null prototype");
+       a(t(y, null), y, "Result");
+       a(getPrototypeOf(y), t.nullPolyfill || null, "Prototype");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/some.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/some.js
new file mode 100644 (file)
index 0000000..490431e
--- /dev/null
@@ -0,0 +1,23 @@
+'use strict';
+
+var o = { 1: 1, 2: 2, 3: 3 };
+
+module.exports = function (t, a) {
+       var o2 = {}, i = 0;
+       t(o, function (value, name) {
+               o2[name] = value;
+               return false;
+       });
+       a(JSON.stringify(o2), JSON.stringify(o), "Iterates");
+
+       a(t(o, function () {
+               ++i;
+               return true;
+       }), true, "Succeeds");
+       a(i, 1, "Stops iteration after condition is met");
+
+       a(t(o, function () {
+               return false;
+       }), false, "Fails");
+
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/to-array.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/to-array.js
new file mode 100644 (file)
index 0000000..1f4beef
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var o = { 1: 1, 2: 2, 3: 3 }, o1 = {}
+         , o2 = t(o, function (value, name, self) {
+               a(self, o, "Self");
+               a(this, o1, "Scope");
+               return value + Number(name);
+       }, o1);
+       a.deep(o2, [2, 4, 6]);
+
+       t(o).sort().forEach(function (item) {
+               a.deep(item, [item[0], o[item[0]]], "Default");
+       });
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/unserialize.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/unserialize.js
new file mode 100644 (file)
index 0000000..405eef1
--- /dev/null
@@ -0,0 +1,24 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var fn = function (raz, dwa) { return raz + dwa; };
+       a(t('undefined'), undefined, "Undefined");
+       a(t('null'), null, "Null");
+       a(t('"raz"'), 'raz', "String");
+       a(t('"raz\\"ddwa\\ntrzy"'), 'raz"ddwa\ntrzy', "String with escape");
+       a(t('false'), false, "Booelean");
+       a(String(t(String(fn))), String(fn), "Function");
+
+       a.deep(t('/raz-dwa/g'), /raz-dwa/g, "RegExp");
+       a.deep(t('new Date(1234567)'), new Date(1234567), "Date");
+       a.deep(t('[]'), [], "Empty array");
+       a.deep(t('[undefined,false,null,"raz\\"ddwa\\ntrzy",/raz/g,new Date(1234567),["foo"]]'),
+               [undefined, false, null, 'raz"ddwa\ntrzy', /raz/g, new Date(1234567), ['foo']], "Rich Array");
+       a.deep(t('{}'), {}, "Empty object");
+       a.deep(t('{"raz":undefined,"dwa":false,"trzy":null,"cztery":"raz\\"ddwa\\ntrzy",' +
+               '"szesc":/raz/g,"siedem":new Date(1234567),"osiem":["foo",32],' +
+               '"dziewiec":{"foo":"bar","dwa":343}}'),
+               { raz: undefined, dwa: false, trzy: null, cztery: 'raz"ddwa\ntrzy', szesc: /raz/g,
+                       siedem: new Date(1234567), osiem: ['foo', 32], dziewiec: { foo: 'bar', dwa: 343 } },
+               "Rich object");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-callable.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-callable.js
new file mode 100644 (file)
index 0000000..b40540b
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var f = function () {};
+       a(t(f), f, "Function");
+       a.throws(function () {
+               t({});
+       }, "Not Function");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-object.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-object.js
new file mode 100644 (file)
index 0000000..eaa8e7b
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x;
+       a.throws(function () { t(0); }, TypeError, "0");
+       a.throws(function () { t(false); }, TypeError, "false");
+       a.throws(function () { t(''); }, TypeError, "''");
+       a(t(x = {}), x, "Object");
+       a(t(x = function () {}), x, "Function");
+       a(t(x = new String('raz')), x, "String object"); //jslint: ignore
+       a(t(x = new Date()), x, "Date");
+
+       a.throws(function () { t(); }, TypeError, "Undefined");
+       a.throws(function () { t(null); }, TypeError, "null");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-value.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-value.js
new file mode 100644 (file)
index 0000000..f1eeafa
--- /dev/null
@@ -0,0 +1,19 @@
+'use strict';
+
+var numIsNaN = require('../../number/is-nan');
+
+module.exports = function (t, a) {
+       var x;
+       a(t(0), 0, "0");
+       a(t(false), false, "false");
+       a(t(''), '', "''");
+       a(numIsNaN(t(NaN)), true, "NaN");
+       a(t(x = {}), x, "{}");
+
+       a.throws(function () {
+               t();
+       }, "Undefined");
+       a.throws(function () {
+               t(null);
+       }, "null");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-array-like-object.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-array-like-object.js
new file mode 100644 (file)
index 0000000..2f3e31b
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x;
+       a.throws(function () { t(0); }, TypeError, "0");
+       a.throws(function () { t(false); }, TypeError, "false");
+       a.throws(function () { t(''); }, TypeError, "String");
+       a.throws(function () { t({}); }, TypeError, "Plain Object");
+       a.throws(function () { t(function () {}); }, TypeError, "Function");
+       a(t(x = new String('raz')), x, "String object"); //jslint: ignore
+
+       a(t(x = { length: 1 }), x, "Array like");
+       a.throws(function () { t(); }, TypeError, "Undefined");
+       a.throws(function () { t(null); }, TypeError, "null");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-array-like.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-array-like.js
new file mode 100644 (file)
index 0000000..53bd112
--- /dev/null
@@ -0,0 +1,15 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x;
+       a.throws(function () { t(0); }, TypeError, "0");
+       a.throws(function () { t(false); }, TypeError, "false");
+       a(t(''), '', "''");
+       a.throws(function () { t({}); }, TypeError, "Plain Object");
+       a.throws(function () { t(function () {}); }, TypeError, "Function");
+       a(t(x = new String('raz')), x, "String object"); //jslint: ignore
+
+       a(t(x = { length: 1 }), x, "Array like");
+       a.throws(function () { t(); }, TypeError, "Undefined");
+       a.throws(function () { t(null); }, TypeError, "null");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-stringifiable-value.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-stringifiable-value.js
new file mode 100644 (file)
index 0000000..ae9bd17
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x;
+       a.throws(function () { t(); }, TypeError, "Undefined");
+       a.throws(function () { t(null); }, TypeError, "Null");
+       a(t(0), "0");
+       a(t(false), "false");
+       a(t(''), "");
+       a(t({}), String({}), "Object");
+       a(t(x = function () {}), String(x), "Function");
+       a(t(x = new String('raz')), String(x), "String object"); //jslint: ignore
+       a(t(x = new Date()), String(x), "Date");
+
+       a.throws(function () { t(Object.create(null)); }, TypeError, "Null prototype object");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-stringifiable.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-stringifiable.js
new file mode 100644 (file)
index 0000000..4a46bb5
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var x;
+       a(t(), 'undefined', "Undefined");
+       a(t(null), 'null', "Null");
+       a(t(0), "0");
+       a(t(false), "false");
+       a(t(''), "");
+       a(t({}), String({}), "Object");
+       a(t(x = function () {}), String(x), "Function");
+       a(t(x = new String('raz')), String(x), "String object"); //jslint: ignore
+       a(t(x = new Date()), String(x), "Date");
+
+       a.throws(function () { t(Object.create(null)); }, TypeError, "Null prototype object");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/index.js
new file mode 100644 (file)
index 0000000..ca2bd65
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+var indexTest = require('tad/lib/utils/index-test')
+
+  , path = require('path').resolve(__dirname, '../../../reg-exp/#');
+
+module.exports = function (t, a, d) {
+       indexTest(indexTest.readDir(path).aside(function (data) {
+               delete data.sticky;
+               delete data.unicode;
+       }))(t, a, d);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/is-sticky.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/is-sticky.js
new file mode 100644 (file)
index 0000000..e154ac2
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var re;
+       a(t.call(/raz/), false, "Normal");
+       a(t.call(/raz/g), false, "Global");
+       try { re = new RegExp('raz', 'y'); } catch (ignore) {}
+       if (!re) return;
+       a(t.call(re), true, "Sticky");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/is-unicode.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/is-unicode.js
new file mode 100644 (file)
index 0000000..2ffb9e8
--- /dev/null
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var re;
+       a(t.call(/raz/), false, "Normal");
+       a(t.call(/raz/g), false, "Global");
+       try { re = new RegExp('raz', 'u'); } catch (ignore) {}
+       if (!re) return;
+       a(t.call(re), true, "Unicode");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/match/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/match/implement.js
new file mode 100644 (file)
index 0000000..89825a4
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../reg-exp/#/match/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/match/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/match/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/match/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/match/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/match/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/match/shim.js
new file mode 100644 (file)
index 0000000..5249139
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var result = ['foo'];
+       result.index = 0;
+       result.input = 'foobar';
+       a.deep(t.call(/foo/, 'foobar'), result);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/replace/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/replace/implement.js
new file mode 100644 (file)
index 0000000..c32b23a
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../reg-exp/#/replace/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/replace/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/replace/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/replace/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/replace/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/replace/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/replace/shim.js
new file mode 100644 (file)
index 0000000..2b378fd
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call(/foo/, 'foobar', 'mar'), 'marbar');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/search/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/search/implement.js
new file mode 100644 (file)
index 0000000..ff1b808
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../reg-exp/#/search/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/search/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/search/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/search/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/search/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/search/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/search/shim.js
new file mode 100644 (file)
index 0000000..596bcdb
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call(/foo/, 'barfoo'), 3);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/split/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/split/implement.js
new file mode 100644 (file)
index 0000000..1cee441
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../reg-exp/#/split/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/split/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/split/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/split/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/split/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/split/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/split/shim.js
new file mode 100644 (file)
index 0000000..6a95cd0
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a.deep(t.call(/\|/, 'bar|foo'), ['bar', 'foo']);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/sticky/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/sticky/implement.js
new file mode 100644 (file)
index 0000000..d94e7b9
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../reg-exp/#/sticky/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/sticky/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/sticky/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/unicode/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/unicode/implement.js
new file mode 100644 (file)
index 0000000..9b1aa0f
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../reg-exp/#/unicode/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/unicode/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/unicode/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/escape.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/escape.js
new file mode 100644 (file)
index 0000000..5b00f67
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var str = "(?:^te|er)s{2}t\\[raz]+$";
+       a(RegExp('^' + t(str) + '$').test(str), true);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/is-reg-exp.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/is-reg-exp.js
new file mode 100644 (file)
index 0000000..785ca28
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t('arar'), false, "String");
+       a(t(12), false, "Number");
+       a(t(true), false, "Boolean");
+       a(t(new Date()), false, "Date");
+       a(t(new String('raz')), false, "String object");
+       a(t({}), false, "Plain object");
+       a(t(/a/), true, "Regular expression");
+       a(t(new RegExp('a')), true, "Regular expression via constructor");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/valid-reg-exp.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/valid-reg-exp.js
new file mode 100644 (file)
index 0000000..cd12cf1
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var r = /raz/;
+       a(t(r), r, "Direct");
+       r = new RegExp('foo');
+       a(t(r), r, "Constructor");
+       a.throws(function () {
+               t({});
+       }, "Object");
+       a.throws(function () {
+               t(function () {});
+       }, "Function");
+       a.throws(function () {
+               t({ exec: function () { return 20; } });
+       }, "Plain object");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/@@iterator/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/@@iterator/implement.js
new file mode 100644 (file)
index 0000000..09bf336
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../string/#/@@iterator/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/@@iterator/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/@@iterator/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/@@iterator/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/@@iterator/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/@@iterator/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/@@iterator/shim.js
new file mode 100644 (file)
index 0000000..3b0e0b7
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function (t, a) {
+       var it = t.call('r💩z');
+       a.deep(it.next(), { done: false, value: 'r' }, "#1");
+       a.deep(it.next(), { done: false, value: '💩' }, "#2");
+       a.deep(it.next(), { done: false, value: 'z' }, "#3");
+       a.deep(it.next(), { done: true, value: undefined }, "End");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/at.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/at.js
new file mode 100644 (file)
index 0000000..2447a9f
--- /dev/null
@@ -0,0 +1,97 @@
+// See tests at https://github.com/mathiasbynens/String.prototype.at
+
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.length, 1, "Length");
+
+       a.h1("BMP");
+       a(t.call('abc\uD834\uDF06def', -Infinity), '', "-Infinity");
+       a(t.call('abc\uD834\uDF06def', -1), '', "-1");
+       a(t.call('abc\uD834\uDF06def', -0), 'a', "-0");
+       a(t.call('abc\uD834\uDF06def', +0), 'a', "+0");
+       a(t.call('abc\uD834\uDF06def', 1), 'b', "1");
+       a(t.call('abc\uD834\uDF06def', 3), '\uD834\uDF06', "3");
+       a(t.call('abc\uD834\uDF06def', 4), '\uDF06', "4");
+       a(t.call('abc\uD834\uDF06def', 5), 'd', "5");
+       a(t.call('abc\uD834\uDF06def', 42), '', "42");
+       a(t.call('abc\uD834\uDF06def', +Infinity), '', "+Infinity");
+       a(t.call('abc\uD834\uDF06def', null), 'a', "null");
+       a(t.call('abc\uD834\uDF06def', undefined), 'a', "undefined");
+       a(t.call('abc\uD834\uDF06def'), 'a', "No argument");
+       a(t.call('abc\uD834\uDF06def', false), 'a', "false");
+       a(t.call('abc\uD834\uDF06def', NaN), 'a', "NaN");
+       a(t.call('abc\uD834\uDF06def', ''), 'a', "Empty string");
+       a(t.call('abc\uD834\uDF06def', '_'), 'a', "_");
+       a(t.call('abc\uD834\uDF06def', '1'), 'b', "'1'");
+       a(t.call('abc\uD834\uDF06def', []), 'a', "[]");
+       a(t.call('abc\uD834\uDF06def', {}), 'a', "{}");
+       a(t.call('abc\uD834\uDF06def', -0.9), 'a', "-0.9");
+       a(t.call('abc\uD834\uDF06def', 1.9), 'b', "1.9");
+       a(t.call('abc\uD834\uDF06def', 7.9), 'f', "7.9");
+       a(t.call('abc\uD834\uDF06def', Math.pow(2, 32)), '', "Big number");
+
+       a.h1("Astral symbol");
+       a(t.call('\uD834\uDF06def', -Infinity), '', "-Infinity");
+       a(t.call('\uD834\uDF06def', -1), '', "-1");
+       a(t.call('\uD834\uDF06def', -0), '\uD834\uDF06', "-0");
+       a(t.call('\uD834\uDF06def', +0), '\uD834\uDF06', "+0");
+       a(t.call('\uD834\uDF06def', 1), '\uDF06', "1");
+       a(t.call('\uD834\uDF06def', 2), 'd', "2");
+       a(t.call('\uD834\uDF06def', 3), 'e', "3");
+       a(t.call('\uD834\uDF06def', 4), 'f', "4");
+       a(t.call('\uD834\uDF06def', 42), '', "42");
+       a(t.call('\uD834\uDF06def', +Infinity), '', "+Infinity");
+       a(t.call('\uD834\uDF06def', null), '\uD834\uDF06', "null");
+       a(t.call('\uD834\uDF06def', undefined), '\uD834\uDF06', "undefined");
+       a(t.call('\uD834\uDF06def'), '\uD834\uDF06', "No arguments");
+       a(t.call('\uD834\uDF06def', false), '\uD834\uDF06', "false");
+       a(t.call('\uD834\uDF06def', NaN), '\uD834\uDF06', "NaN");
+       a(t.call('\uD834\uDF06def', ''), '\uD834\uDF06', "Empty string");
+       a(t.call('\uD834\uDF06def', '_'), '\uD834\uDF06', "_");
+       a(t.call('\uD834\uDF06def', '1'), '\uDF06', "'1'");
+
+       a.h1("Lone high surrogates");
+       a(t.call('\uD834abc', -Infinity), '', "-Infinity");
+       a(t.call('\uD834abc', -1), '',  "-1");
+       a(t.call('\uD834abc', -0), '\uD834', "-0");
+       a(t.call('\uD834abc', +0), '\uD834', "+0");
+       a(t.call('\uD834abc', 1), 'a', "1");
+       a(t.call('\uD834abc', 42), '', "42");
+       a(t.call('\uD834abc', +Infinity), '', "Infinity");
+       a(t.call('\uD834abc', null), '\uD834', "null");
+       a(t.call('\uD834abc', undefined), '\uD834', "undefined");
+       a(t.call('\uD834abc'), '\uD834', "No arguments");
+       a(t.call('\uD834abc', false), '\uD834', "false");
+       a(t.call('\uD834abc', NaN), '\uD834', "NaN");
+       a(t.call('\uD834abc', ''), '\uD834', "Empty string");
+       a(t.call('\uD834abc', '_'), '\uD834', "_");
+       a(t.call('\uD834abc', '1'), 'a', "'a'");
+
+       a.h1("Lone low surrogates");
+       a(t.call('\uDF06abc', -Infinity), '', "-Infinity");
+       a(t.call('\uDF06abc', -1), '', "-1");
+       a(t.call('\uDF06abc', -0), '\uDF06', "-0");
+       a(t.call('\uDF06abc', +0), '\uDF06', "+0");
+       a(t.call('\uDF06abc', 1), 'a', "1");
+       a(t.call('\uDF06abc', 42), '', "42");
+       a(t.call('\uDF06abc', +Infinity), '', "+Infinity");
+       a(t.call('\uDF06abc', null), '\uDF06', "null");
+       a(t.call('\uDF06abc', undefined), '\uDF06', "undefined");
+       a(t.call('\uDF06abc'), '\uDF06', "No arguments");
+       a(t.call('\uDF06abc', false), '\uDF06', "false");
+       a(t.call('\uDF06abc', NaN), '\uDF06', "NaN");
+       a(t.call('\uDF06abc', ''), '\uDF06', "Empty string");
+       a(t.call('\uDF06abc', '_'), '\uDF06', "_");
+       a(t.call('\uDF06abc', '1'), 'a', "'1'");
+
+       a.h1("Context");
+       a.throws(function () { t.call(undefined); }, TypeError, "Undefined");
+       a.throws(function () { t.call(undefined, 4); }, TypeError,
+               "Undefined + argument");
+       a.throws(function () { t.call(null); }, TypeError, "Null");
+       a.throws(function () { t.call(null, 4); }, TypeError, "Null + argument");
+       a(t.call(42, 0), '4', "Number #1");
+       a(t.call(42, 1), '2', "Number #2");
+       a(t.call({ toString: function () { return 'abc'; } }, 2), 'c', "Object");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/camel-to-hyphen.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/camel-to-hyphen.js
new file mode 100644 (file)
index 0000000..8b47a81
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call('razDwaTRzy4yFoo45My'), 'raz-dwa-t-rzy4y-foo45-my');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/capitalize.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/capitalize.js
new file mode 100644 (file)
index 0000000..fa11ff8
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call('raz'), 'Raz', "Word");
+       a(t.call('BLA'), 'BLA', "Uppercase");
+       a(t.call(''), '', "Empty");
+       a(t.call('a'), 'A', "One letter");
+       a(t.call('this is a test'), 'This is a test', "Sentence");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/case-insensitive-compare.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/case-insensitive-compare.js
new file mode 100644 (file)
index 0000000..01a90c3
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call("AA", "aa"), 0, "Same");
+       a.ok(t.call("Amber", "zebra") < 0, "Less");
+       a.ok(t.call("Zebra", "amber") > 0, "Greater");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/code-point-at/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/code-point-at/implement.js
new file mode 100644 (file)
index 0000000..5e33cd7
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+var isImplemented =
+       require('../../../../string/#/code-point-at/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/code-point-at/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/code-point-at/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/code-point-at/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/code-point-at/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/code-point-at/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/code-point-at/shim.js
new file mode 100644 (file)
index 0000000..0df4751
--- /dev/null
@@ -0,0 +1,81 @@
+// Taken from: https://github.com/mathiasbynens/String.prototype.codePointAt
+//             /blob/master/tests/tests.js
+
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.length, 1, "Length");
+
+       // String that starts with a BMP symbol
+       a(t.call('abc\uD834\uDF06def', ''), 0x61);
+       a(t.call('abc\uD834\uDF06def', '_'), 0x61);
+       a(t.call('abc\uD834\uDF06def'), 0x61);
+       a(t.call('abc\uD834\uDF06def', -Infinity), undefined);
+       a(t.call('abc\uD834\uDF06def', -1), undefined);
+       a(t.call('abc\uD834\uDF06def', -0), 0x61);
+       a(t.call('abc\uD834\uDF06def', 0), 0x61);
+       a(t.call('abc\uD834\uDF06def', 3), 0x1D306);
+       a(t.call('abc\uD834\uDF06def', 4), 0xDF06);
+       a(t.call('abc\uD834\uDF06def', 5), 0x64);
+       a(t.call('abc\uD834\uDF06def', 42), undefined);
+       a(t.call('abc\uD834\uDF06def', Infinity), undefined);
+       a(t.call('abc\uD834\uDF06def', Infinity), undefined);
+       a(t.call('abc\uD834\uDF06def', NaN), 0x61);
+       a(t.call('abc\uD834\uDF06def', false), 0x61);
+       a(t.call('abc\uD834\uDF06def', null), 0x61);
+       a(t.call('abc\uD834\uDF06def', undefined), 0x61);
+
+       // String that starts with an astral symbol
+       a(t.call('\uD834\uDF06def', ''), 0x1D306);
+       a(t.call('\uD834\uDF06def', '1'), 0xDF06);
+       a(t.call('\uD834\uDF06def', '_'), 0x1D306);
+       a(t.call('\uD834\uDF06def'), 0x1D306);
+       a(t.call('\uD834\uDF06def', -1), undefined);
+       a(t.call('\uD834\uDF06def', -0), 0x1D306);
+       a(t.call('\uD834\uDF06def', 0), 0x1D306);
+       a(t.call('\uD834\uDF06def', 1), 0xDF06);
+       a(t.call('\uD834\uDF06def', 42), undefined);
+       a(t.call('\uD834\uDF06def', false), 0x1D306);
+       a(t.call('\uD834\uDF06def', null), 0x1D306);
+       a(t.call('\uD834\uDF06def', undefined), 0x1D306);
+
+       // Lone high surrogates
+       a(t.call('\uD834abc', ''), 0xD834);
+       a(t.call('\uD834abc', '_'), 0xD834);
+       a(t.call('\uD834abc'), 0xD834);
+       a(t.call('\uD834abc', -1), undefined);
+       a(t.call('\uD834abc', -0), 0xD834);
+       a(t.call('\uD834abc', 0), 0xD834);
+       a(t.call('\uD834abc', false), 0xD834);
+       a(t.call('\uD834abc', NaN), 0xD834);
+       a(t.call('\uD834abc', null), 0xD834);
+       a(t.call('\uD834abc', undefined), 0xD834);
+
+       // Lone low surrogates
+       a(t.call('\uDF06abc', ''), 0xDF06);
+       a(t.call('\uDF06abc', '_'), 0xDF06);
+       a(t.call('\uDF06abc'), 0xDF06);
+       a(t.call('\uDF06abc', -1), undefined);
+       a(t.call('\uDF06abc', -0), 0xDF06);
+       a(t.call('\uDF06abc', 0), 0xDF06);
+       a(t.call('\uDF06abc', false), 0xDF06);
+       a(t.call('\uDF06abc', NaN), 0xDF06);
+       a(t.call('\uDF06abc', null), 0xDF06);
+       a(t.call('\uDF06abc', undefined), 0xDF06);
+
+       a.throws(function () { t.call(undefined); }, TypeError);
+       a.throws(function () { t.call(undefined, 4); }, TypeError);
+       a.throws(function () { t.call(null); }, TypeError);
+       a.throws(function () { t.call(null, 4); }, TypeError);
+       a(t.call(42, 0), 0x34);
+       a(t.call(42, 1), 0x32);
+       a(t.call({ toString: function () { return 'abc'; } }, 2), 0x63);
+
+       a.throws(function () { t.apply(undefined); }, TypeError);
+       a.throws(function () { t.apply(undefined, [4]); }, TypeError);
+       a.throws(function () { t.apply(null); }, TypeError);
+       a.throws(function () { t.apply(null, [4]); }, TypeError);
+       a(t.apply(42, [0]), 0x34);
+       a(t.apply(42, [1]), 0x32);
+       a(t.apply({ toString: function () { return 'abc'; } }, [2]), 0x63);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/contains/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/contains/implement.js
new file mode 100644 (file)
index 0000000..220f50d
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../string/#/contains/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/contains/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/contains/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/contains/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/contains/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/contains/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/contains/shim.js
new file mode 100644 (file)
index 0000000..a0ea4db
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call('raz', ''), true, "Empty");
+       a(t.call('', ''), true, "Both Empty");
+       a(t.call('raz', 'raz'), true, "Same");
+       a(t.call('razdwa', 'raz'), true, "Starts with");
+       a(t.call('razdwa', 'dwa'), true, "Ends with");
+       a(t.call('razdwa', 'zdw'), true, "In middle");
+       a(t.call('', 'raz'), false, "Something in empty");
+       a(t.call('az', 'raz'), false, "Longer");
+       a(t.call('azasdfasdf', 'azff'), false, "Not found");
+       a(t.call('razdwa', 'raz', 1), false, "Position");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/ends-with/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/ends-with/implement.js
new file mode 100644 (file)
index 0000000..93bd2dd
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../string/#/ends-with/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/ends-with/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/ends-with/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/ends-with/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/ends-with/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/ends-with/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/ends-with/shim.js
new file mode 100644 (file)
index 0000000..e4b93c4
--- /dev/null
@@ -0,0 +1,16 @@
+// In some parts copied from:
+// http://closure-library.googlecode.com/svn/trunk/closure/goog/
+// string/string_test.html
+
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call('abc', ''), true, "Empty needle");
+       a(t.call('abcd', 'cd'), true, "Ends with needle");
+       a(t.call('abcd', 'abcd'), true, "Needle equals haystack");
+       a(t.call('abcd', 'ab'), false, "Doesn't end with needle");
+       a(t.call('abc', 'defg'), false, "Length trick");
+       a(t.call('razdwa', 'zd', 3), false, "Position: false");
+       a(t.call('razdwa', 'zd', 4), true, "Position: true");
+       a(t.call('razdwa', 'zd', 5), false, "Position: false #2");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/hyphen-to-camel.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/hyphen-to-camel.js
new file mode 100644 (file)
index 0000000..bd7ded4
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call('raz-dwa-t-rzy-4y-rtr4-tiu-45-pa'), 'razDwaTRzy4yRtr4Tiu45Pa');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/indent.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/indent.js
new file mode 100644 (file)
index 0000000..eb92b36
--- /dev/null
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call('ra\nzz', ''), 'ra\nzz', "Empty");
+       a(t.call('ra\nzz', '\t', 3), '\t\t\tra\n\t\t\tzz', "String repeat");
+       a(t.call('ra\nzz\nsss\nfff\n', '\t'), '\tra\n\tzz\n\tsss\n\tfff\n',
+               "Multi-line");
+       a(t.call('ra\n\nzz\n', '\t'), '\tra\n\n\tzz\n', "Don't touch empty lines");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/last.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/last.js
new file mode 100644 (file)
index 0000000..ad36a21
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call(''), null, "Null");
+       a(t.call('abcdef'), 'f', "String");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize/_data.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize/_data.js
new file mode 100644 (file)
index 0000000..c741add
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t[0], 'object'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize/implement.js
new file mode 100644 (file)
index 0000000..4886c9b
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../string/#/normalize/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize/shim.js
new file mode 100644 (file)
index 0000000..28e27f5
--- /dev/null
@@ -0,0 +1,13 @@
+// Taken from: https://github.com/walling/unorm/blob/master/test/es6-shim.js
+
+'use strict';
+
+var str = 'äiti';
+
+module.exports = function (t, a) {
+       a(t.call(str), "\u00e4iti");
+       a(t.call(str, "NFC"), "\u00e4iti");
+       a(t.call(str, "NFD"), "a\u0308iti");
+       a(t.call(str, "NFKC"), "\u00e4iti");
+       a(t.call(str, "NFKD"), "a\u0308iti");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/pad.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/pad.js
new file mode 100644 (file)
index 0000000..28c3fca
--- /dev/null
@@ -0,0 +1,24 @@
+'use strict';
+
+var partial = require('../../../function/#/partial');
+
+module.exports = {
+       Left: function (t, a) {
+               t = partial.call(t, 'x', 5);
+
+               a(t.call('yy'), 'xxxyy');
+               a(t.call(''), 'xxxxx', "Empty string");
+
+               a(t.call('yyyyy'), 'yyyyy', 'Equal length');
+               a(t.call('yyyyyyy'), 'yyyyyyy', 'Longer');
+       },
+       Right: function (t, a) {
+               t = partial.call(t, 'x', -5);
+
+               a(t.call('yy'), 'yyxxx');
+               a(t.call(''), 'xxxxx', "Empty string");
+
+               a(t.call('yyyyy'), 'yyyyy', 'Equal length');
+               a(t.call('yyyyyyy'), 'yyyyyyy', 'Longer');
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/plain-replace-all.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/plain-replace-all.js
new file mode 100644 (file)
index 0000000..a425c87
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call('razdwatrzy', 'dwa', 'olera'), 'razoleratrzy', "Basic");
+       a(t.call('razdwatrzy', 'dwa', 'ole$&a'), 'razole$&atrzy', "Inserts");
+       a(t.call('razdwa', 'ola', 'sdfs'), 'razdwa', "No replace");
+
+       a(t.call('$raz$$dwa$trzy$', '$', '&&'), '&&raz&&&&dwa&&trzy&&', "Multi");
+       a(t.call('$raz$$dwa$$$$trzy$', '$$', '&'), '$raz&dwa&&trzy$',
+               "Multi many chars");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/plain-replace.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/plain-replace.js
new file mode 100644 (file)
index 0000000..54522ed
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call('razdwatrzy', 'dwa', 'olera'), 'razoleratrzy', "Basic");
+       a(t.call('razdwatrzy', 'dwa', 'ole$&a'), 'razole$&atrzy', "Inserts");
+       a(t.call('razdwa', 'ola', 'sdfs'), 'razdwa', "No replace");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/repeat/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/repeat/implement.js
new file mode 100644 (file)
index 0000000..7ff65a8
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../string/#/repeat/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/repeat/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/repeat/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/repeat/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/repeat/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/repeat/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/repeat/shim.js
new file mode 100644 (file)
index 0000000..7e0d077
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call('a', 0), '', "Empty");
+       a(t.call('a', 1), 'a', "1");
+       a(t.call('\t', 5), '\t\t\t\t\t', "Whitespace");
+       a(t.call('raz', 3), 'razrazraz', "Many chars");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/starts-with/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/starts-with/implement.js
new file mode 100644 (file)
index 0000000..fc8490f
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../../string/#/starts-with/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/starts-with/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/starts-with/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/starts-with/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/starts-with/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/starts-with/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/starts-with/shim.js
new file mode 100644 (file)
index 0000000..e0e123b
--- /dev/null
@@ -0,0 +1,14 @@
+// Inspired and in some parts copied from:
+// http://closure-library.googlecode.com/svn/trunk/closure/goog
+// /string/string_test.html
+
+'use strict';
+
+module.exports = function (t, a) {
+       a(t.call('abc', ''), true, "Empty needle");
+       a(t.call('abcd', 'ab'), true, "Starts with needle");
+       a(t.call('abcd', 'abcd'), true, "Needle equals haystack");
+       a(t.call('abcd', 'bcde', 1), false, "Needle larger than haystack");
+       a(!t.call('abcd', 'cd'), true, "Doesn't start with needle");
+       a(t.call('abcd', 'bc', 1), true, "Position");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/format-method.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/format-method.js
new file mode 100644 (file)
index 0000000..bb5561e
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function (t, a) {
+       t = t({ a: 'A', aa: 'B', ab: 'C', b: 'D',
+               c: function () { return ++this.a; } });
+       a(t.call({ a: 0 }, ' %a%aab%abb%b\\%aa%ab%c%c '), ' ABbCbD%aaC12 ');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/from-code-point/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/from-code-point/implement.js
new file mode 100644 (file)
index 0000000..0aceb97
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../string/from-code-point/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/from-code-point/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/from-code-point/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/from-code-point/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/from-code-point/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/from-code-point/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/from-code-point/shim.js
new file mode 100644 (file)
index 0000000..88cda3d
--- /dev/null
@@ -0,0 +1,47 @@
+// Taken from: https://github.com/mathiasbynens/String.fromCodePoint/blob/master
+//             /tests/tests.js
+
+'use strict';
+
+var pow = Math.pow;
+
+module.exports = function (t, a) {
+       var counter, result;
+
+       a(t.length, 1, "Length");
+       a(String.propertyIsEnumerable('fromCodePoint'), false, "Not enumerable");
+
+       a(t(''), '\0', "Empty string");
+       a(t(), '', "No arguments");
+       a(t(-0), '\0', "-0");
+       a(t(0), '\0', "0");
+       a(t(0x1D306), '\uD834\uDF06', "Unicode");
+       a(t(0x1D306, 0x61, 0x1D307), '\uD834\uDF06a\uD834\uDF07', "Complex unicode");
+       a(t(0x61, 0x62, 0x1D307), 'ab\uD834\uDF07', "Complex");
+       a(t(false), '\0', "false");
+       a(t(null), '\0', "null");
+
+       a.throws(function () { t('_'); }, RangeError, "_");
+       a.throws(function () { t(Infinity); }, RangeError, "Infinity");
+       a.throws(function () { t(-Infinity); }, RangeError, "-Infinity");
+       a.throws(function () { t(-1); }, RangeError, "-1");
+       a.throws(function () { t(0x10FFFF + 1); }, RangeError, "Range error #1");
+       a.throws(function () { t(3.14); }, RangeError, "Range error #2");
+       a.throws(function () { t(3e-2); }, RangeError, "Range error #3");
+       a.throws(function () { t(-Infinity); }, RangeError, "Range error #4");
+       a.throws(function () { t(+Infinity); }, RangeError, "Range error #5");
+       a.throws(function () { t(NaN); }, RangeError, "Range error #6");
+       a.throws(function () { t(undefined); }, RangeError, "Range error #7");
+       a.throws(function () { t({}); }, RangeError, "Range error #8");
+       a.throws(function () { t(/re/); }, RangeError, "Range error #9");
+
+       counter = pow(2, 15) * 3 / 2;
+       result = [];
+       while (--counter >= 0) result.push(0); // one code unit per symbol
+       t.apply(null, result); // must not throw
+
+       counter = pow(2, 15) * 3 / 2;
+       result = [];
+       while (--counter >= 0) result.push(0xFFFF + 1); // two code units per symbol
+       t.apply(null, result); // must not throw
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/is-string.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/is-string.js
new file mode 100644 (file)
index 0000000..32f5958
--- /dev/null
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = function (t, a) {
+       a(t(null), false, "Null");
+       a(t(''), true, "Empty string");
+       a(t(12), false, "Number");
+       a(t(false), false, "Boolean");
+       a(t(new Date()), false, "Date");
+       a(t(new String('raz')), true, "String object");
+       a(t('asdfaf'), true, "String");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/random-uniq.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/random-uniq.js
new file mode 100644 (file)
index 0000000..6791ac2
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+var isValidFormat = RegExp.prototype.test.bind(/^[a-z0-9]+$/);
+
+module.exports = function (t, a) {
+       a(typeof t(), 'string');
+       a.ok(t().length > 7);
+       a.not(t(), t());
+       a.ok(isValidFormat(t()));
+       a.ok(isValidFormat(t()));
+       a.ok(isValidFormat(t()));
+       a.ok(isValidFormat(t()));
+       a.ok(isValidFormat(t()));
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/raw/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/raw/implement.js
new file mode 100644 (file)
index 0000000..59416de
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../string/raw/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/raw/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/raw/index.js
new file mode 100644 (file)
index 0000000..2e0bfa3
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/raw/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/raw/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/raw/shim.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/raw/shim.js
new file mode 100644 (file)
index 0000000..025ed78
--- /dev/null
@@ -0,0 +1,15 @@
+// Partially taken from:
+// https://github.com/paulmillr/es6-shim/blob/master/test/string.js
+
+'use strict';
+
+module.exports = function (t, a) {
+       var callSite = [];
+
+       callSite.raw = ["The total is ", " ($", " with tax)"];
+       a(t(callSite, '{total}', '{total * 1.01}'),
+               'The total is {total} (${total * 1.01} with tax)');
+
+       callSite.raw = [];
+       a(t(callSite, '{total}', '{total * 1.01}'), '');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/#/chain.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/#/chain.js
new file mode 100644 (file)
index 0000000..6dc1543
--- /dev/null
@@ -0,0 +1,40 @@
+'use strict';
+
+var setPrototypeOf = require('es5-ext/object/set-prototype-of')
+  , d              = require('d')
+  , Iterator       = require('../')
+  , validIterable  = require('../valid-iterable')
+
+  , push = Array.prototype.push
+  , defineProperties = Object.defineProperties
+  , IteratorChain;
+
+IteratorChain = function (iterators) {
+       defineProperties(this, {
+               __iterators__: d('', iterators),
+               __current__: d('w', iterators.shift())
+       });
+};
+if (setPrototypeOf) setPrototypeOf(IteratorChain, Iterator);
+
+IteratorChain.prototype = Object.create(Iterator.prototype, {
+       constructor: d(IteratorChain),
+       next: d(function () {
+               var result;
+               if (!this.__current__) return { done: true, value: undefined };
+               result = this.__current__.next();
+               while (result.done) {
+                       this.__current__ = this.__iterators__.shift();
+                       if (!this.__current__) return { done: true, value: undefined };
+                       result = this.__current__.next();
+               }
+               return result;
+       })
+});
+
+module.exports = function () {
+       var iterators = [this];
+       push.apply(iterators, arguments);
+       iterators.forEach(validIterable);
+       return new IteratorChain(iterators);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/.lint b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/.lint
new file mode 100644 (file)
index 0000000..cf54d81
--- /dev/null
@@ -0,0 +1,11 @@
+@root
+
+module
+
+tabs
+indent 2
+maxlen 100
+
+ass
+nomen
+plusplus
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/.npmignore b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/.npmignore
new file mode 100644 (file)
index 0000000..155e41f
--- /dev/null
@@ -0,0 +1,4 @@
+.DS_Store
+/node_modules
+/npm-debug.log
+/.lintcache
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/.travis.yml b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/.travis.yml
new file mode 100644 (file)
index 0000000..02c277c
--- /dev/null
@@ -0,0 +1,11 @@
+language: node_js
+node_js:
+  - 0.8
+  - 0.10
+  - 0.11
+
+notifications:
+  email:
+    - medikoo+es6-iterator@medikoo.com
+
+script: "npm test && npm run lint"
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/CHANGES b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/CHANGES
new file mode 100644 (file)
index 0000000..a2d1ec7
--- /dev/null
@@ -0,0 +1,28 @@
+v0.1.3  --  2015.02.02
+* Update dependencies
+* Fix spelling of LICENSE
+
+v0.1.2  --  2014.11.19
+* Optimise internal `_next` to not verify internal's list length at all times
+  (#2 thanks @RReverser)
+* Fix documentation examples
+* Configure lint scripts
+
+v0.1.1  --  2014.04.29
+* Fix es6-symbol dependency version
+
+v0.1.0  --  2014.04.29
+* Assure strictly npm hosted dependencies
+* Remove sparse arrays dedicated handling (as per spec)
+* Add: isIterable, validIterable and chain (method)
+* Remove toArray, it's addressed by Array.from (polyfil can be found in es5-ext/array/from)
+* Add break possiblity to 'forOf' via 'doBreak' function argument
+* Provide dedicated iterator for array-likes (ArrayIterator) and for strings (StringIterator)
+* Provide @@toStringTag symbol
+* When available rely on @@iterator symbol
+* Remove 32bit integer maximum list length restriction
+* Improve Iterator internals
+* Update to use latest version of dependencies
+
+v0.0.0  --  2013.10.12
+Initial (dev version)
\ No newline at end of file
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/LICENSE b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/LICENSE
new file mode 100644 (file)
index 0000000..04724a3
--- /dev/null
@@ -0,0 +1,19 @@
+Copyright (C) 2013-2015 Mariusz Nowak (www.medikoo.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/README.md b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/README.md
new file mode 100644 (file)
index 0000000..288373d
--- /dev/null
@@ -0,0 +1,148 @@
+# es6-iterator
+## ECMAScript 6 Iterator interface
+
+### Installation
+
+       $ npm install es6-iterator
+       
+To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)
+
+## API
+
+### Constructors
+
+#### Iterator(list) _(es6-iterator)_
+
+Abstract Iterator interface. Meant for extensions and not to be used on its own.
+
+Accepts any _list_ object (technically object with numeric _length_ property).
+
+_Mind it doesn't iterate strings properly, for that use dedicated [StringIterator](#string-iterator)_
+
+```javascript
+var Iterator = require('es6-iterator')
+var iterator = new Iterator([1, 2, 3]);
+
+iterator.next(); // { value: 1, done: false }
+iterator.next(); // { value: 2, done: false }
+iterator.next(); // { value: 3, done: false }
+iterator.next(); // { value: undefined, done: true }
+```
+
+
+#### ArrayIterator(arrayLike[, kind]) _(es6-iterator/array)_
+
+Dedicated for arrays and array-likes. Supports three iteration kinds:
+* __value__ _(default)_ - Iterates values
+* __key__ - Iterates indexes
+* __key+value__ - Iterates keys and indexes, each iteration value is in _[key, value]_ form.
+
+
+```javascript
+var ArrayIterator = require('es6-iterator/array')
+var iterator = new ArrayIterator([1, 2, 3], 'key+value');
+
+iterator.next(); // { value: [0, 1], done: false }
+iterator.next(); // { value: [1, 2], done: false }
+iterator.next(); // { value: [2, 3], done: false }
+iterator.next(); // { value: undefined, done: true }
+```
+
+May also be used for _arguments_ objects:
+
+```javascript
+(function () {
+  var iterator = new ArrayIterator(arguments);
+
+  iterator.next(); // { value: 1, done: false }
+  iterator.next(); // { value: 2, done: false }
+  iterator.next(); // { value: 3, done: false }
+  iterator.next(); // { value: undefined, done: true }
+}(1, 2, 3));
+```
+
+#### StringIterator(str) _(es6-iterator/string)_
+
+Assures proper iteration over unicode symbols.  
+See: http://mathiasbynens.be/notes/javascript-unicode
+
+```javascript
+var StringIterator = require('es6-iterator/string');
+var iterator = new StringIterator('f🙈o🙉o🙊');
+
+iterator.next(); // { value: 'f', done: false }
+iterator.next(); // { value: '🙈', done: false }
+iterator.next(); // { value: 'o', done: false }
+iterator.next(); // { value: '🙉', done: false }
+iterator.next(); // { value: 'o', done: false }
+iterator.next(); // { value: '🙊', done: false }
+iterator.next(); // { value: undefined, done: true }
+```
+
+### Function utilities
+
+#### forOf(iterable, callback[, thisArg]) _(es6-iterator/for-of)_
+
+Polyfill for ECMAScript 6 [`for...of`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) statement.
+
+```
+var forOf = require('es6-iterator/for-of');
+var result = [];
+
+forOf('🙈🙉🙊', function (monkey) { result.push(monkey); });
+console.log(result); // ['🙈', '🙉', '🙊'];
+```
+
+Optionally you can break iteration at any point:
+
+```javascript
+var result = [];
+
+forOf([1,2,3,4]', function (val, doBreak) {
+  result.push(monkey);
+  if (val >= 3) doBreak();
+});
+console.log(result); // [1, 2, 3];
+```
+
+#### get(obj) _(es6-iterator/get)_
+
+Return iterator for any iterable object.
+
+```javascript
+var getIterator = require('es6-iterator/get');
+var iterator = get([1,2,3]);
+
+iterator.next(); // { value: 1, done: false }
+iterator.next(); // { value: 2, done: false }
+iterator.next(); // { value: 3, done: false }
+iterator.next(); // { value: undefined, done: true }
+```
+
+#### isIterable(obj) _(es6-iterator/is-iterable)_
+
+Whether _obj_ is iterable
+
+```javascript
+var isIterable = require('es6-iterator/is-iterable');
+
+isIterable(null); // false
+isIterable(true); // false
+isIterable('str'); // true
+isIterable(['a', 'r', 'r']); // true
+isIterable(new ArrayIterator([])); // true
+```
+
+#### validIterable(obj) _(es6-iterator/valid-iterable)_
+
+If _obj_ is an iterable it is returned. Otherwise _TypeError_ is thrown.
+
+### Method extensions
+
+#### iterator.chain(iterator1[, …iteratorn]) _(es6-iterator/#/chain)_
+
+Chain multiple iterators into one.
+
+### Tests [![Build Status](https://travis-ci.org/medikoo/es6-iterator.png)](https://travis-ci.org/medikoo/es6-iterator)
+
+       $ npm test
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/array.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/array.js
new file mode 100644 (file)
index 0000000..885ad0a
--- /dev/null
@@ -0,0 +1,30 @@
+'use strict';
+
+var setPrototypeOf = require('es5-ext/object/set-prototype-of')
+  , contains       = require('es5-ext/string/#/contains')
+  , d              = require('d')
+  , Iterator       = require('./')
+
+  , defineProperty = Object.defineProperty
+  , ArrayIterator;
+
+ArrayIterator = module.exports = function (arr, kind) {
+       if (!(this instanceof ArrayIterator)) return new ArrayIterator(arr, kind);
+       Iterator.call(this, arr);
+       if (!kind) kind = 'value';
+       else if (contains.call(kind, 'key+value')) kind = 'key+value';
+       else if (contains.call(kind, 'key')) kind = 'key';
+       else kind = 'value';
+       defineProperty(this, '__kind__', d('', kind));
+};
+if (setPrototypeOf) setPrototypeOf(ArrayIterator, Iterator);
+
+ArrayIterator.prototype = Object.create(Iterator.prototype, {
+       constructor: d(ArrayIterator),
+       _resolve: d(function (i) {
+               if (this.__kind__ === 'value') return this.__list__[i];
+               if (this.__kind__ === 'key+value') return [i, this.__list__[i]];
+               return i;
+       }),
+       toString: d(function () { return '[object Array Iterator]'; })
+});
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/for-of.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/for-of.js
new file mode 100644 (file)
index 0000000..111f552
--- /dev/null
@@ -0,0 +1,44 @@
+'use strict';
+
+var callable = require('es5-ext/object/valid-callable')
+  , isString = require('es5-ext/string/is-string')
+  , get      = require('./get')
+
+  , isArray = Array.isArray, call = Function.prototype.call;
+
+module.exports = function (iterable, cb/*, thisArg*/) {
+       var mode, thisArg = arguments[2], result, doBreak, broken, i, l, char, code;
+       if (isArray(iterable)) mode = 'array';
+       else if (isString(iterable)) mode = 'string';
+       else iterable = get(iterable);
+
+       callable(cb);
+       doBreak = function () { broken = true; };
+       if (mode === 'array') {
+               iterable.some(function (value) {
+                       call.call(cb, thisArg, value, doBreak);
+                       if (broken) return true;
+               });
+               return;
+       }
+       if (mode === 'string') {
+               l = iterable.length;
+               for (i = 0; i < l; ++i) {
+                       char = iterable[i];
+                       if ((i + 1) < l) {
+                               code = char.charCodeAt(0);
+                               if ((code >= 0xD800) && (code <= 0xDBFF)) char += iterable[++i];
+                       }
+                       call.call(cb, thisArg, char, doBreak);
+                       if (broken) break;
+               }
+               return;
+       }
+       result = iterable.next();
+
+       while (!result.done) {
+               call.call(cb, thisArg, result.value, doBreak);
+               if (broken) return;
+               result = iterable.next();
+       }
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/get.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/get.js
new file mode 100644 (file)
index 0000000..38230fd
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+var isString = require('es5-ext/string/is-string')
+  , ArrayIterator  = require('./array')
+  , StringIterator = require('./string')
+  , iterable       = require('./valid-iterable')
+  , iteratorSymbol = require('es6-symbol').iterator;
+
+module.exports = function (obj) {
+       if (typeof iterable(obj)[iteratorSymbol] === 'function') return obj[iteratorSymbol]();
+       if (isString(obj)) return new StringIterator(obj);
+       return new ArrayIterator(obj);
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/index.js
new file mode 100644 (file)
index 0000000..10fd089
--- /dev/null
@@ -0,0 +1,90 @@
+'use strict';
+
+var clear    = require('es5-ext/array/#/clear')
+  , assign   = require('es5-ext/object/assign')
+  , callable = require('es5-ext/object/valid-callable')
+  , value    = require('es5-ext/object/valid-value')
+  , d        = require('d')
+  , autoBind = require('d/auto-bind')
+  , Symbol   = require('es6-symbol')
+
+  , defineProperty = Object.defineProperty
+  , defineProperties = Object.defineProperties
+  , Iterator;
+
+module.exports = Iterator = function (list, context) {
+       if (!(this instanceof Iterator)) return new Iterator(list, context);
+       defineProperties(this, {
+               __list__: d('w', value(list)),
+               __context__: d('w', context),
+               __nextIndex__: d('w', 0)
+       });
+       if (!context) return;
+       callable(context.on);
+       context.on('_add', this._onAdd);
+       context.on('_delete', this._onDelete);
+       context.on('_clear', this._onClear);
+};
+
+defineProperties(Iterator.prototype, assign({
+       constructor: d(Iterator),
+       _next: d(function () {
+               var i;
+               if (!this.__list__) return;
+               if (this.__redo__) {
+                       i = this.__redo__.shift();
+                       if (i !== undefined) return i;
+               }
+               if (this.__nextIndex__ < this.__list__.length) return this.__nextIndex__++;
+               this._unBind();
+       }),
+       next: d(function () { return this._createResult(this._next()); }),
+       _createResult: d(function (i) {
+               if (i === undefined) return { done: true, value: undefined };
+               return { done: false, value: this._resolve(i) };
+       }),
+       _resolve: d(function (i) { return this.__list__[i]; }),
+       _unBind: d(function () {
+               this.__list__ = null;
+               delete this.__redo__;
+               if (!this.__context__) return;
+               this.__context__.off('_add', this._onAdd);
+               this.__context__.off('_delete', this._onDelete);
+               this.__context__.off('_clear', this._onClear);
+               this.__context__ = null;
+       }),
+       toString: d(function () { return '[object Iterator]'; })
+}, autoBind({
+       _onAdd: d(function (index) {
+               if (index >= this.__nextIndex__) return;
+               ++this.__nextIndex__;
+               if (!this.__redo__) {
+                       defineProperty(this, '__redo__', d('c', [index]));
+                       return;
+               }
+               this.__redo__.forEach(function (redo, i) {
+                       if (redo >= index) this.__redo__[i] = ++redo;
+               }, this);
+               this.__redo__.push(index);
+       }),
+       _onDelete: d(function (index) {
+               var i;
+               if (index >= this.__nextIndex__) return;
+               --this.__nextIndex__;
+               if (!this.__redo__) return;
+               i = this.__redo__.indexOf(index);
+               if (i !== -1) this.__redo__.splice(i, 1);
+               this.__redo__.forEach(function (redo, i) {
+                       if (redo > index) this.__redo__[i] = --redo;
+               }, this);
+       }),
+       _onClear: d(function () {
+               if (this.__redo__) clear.call(this.__redo__);
+               this.__nextIndex__ = 0;
+       })
+})));
+
+defineProperty(Iterator.prototype, Symbol.iterator, d(function () {
+       return this;
+}));
+defineProperty(Iterator.prototype, Symbol.toStringTag, d('', 'Iterator'));
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/is-iterable.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/is-iterable.js
new file mode 100644 (file)
index 0000000..bbcf104
--- /dev/null
@@ -0,0 +1,13 @@
+'use strict';
+
+var isString       = require('es5-ext/string/is-string')
+  , iteratorSymbol = require('es6-symbol').iterator
+
+  , isArray = Array.isArray;
+
+module.exports = function (value) {
+       if (value == null) return false;
+       if (isArray(value)) return true;
+       if (isString(value)) return true;
+       return (typeof value[iteratorSymbol] === 'function');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/package.json b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/package.json
new file mode 100644 (file)
index 0000000..b861638
--- /dev/null
@@ -0,0 +1,66 @@
+{
+  "name": "es6-iterator",
+  "version": "0.1.3",
+  "description": "Iterator abstraction based on ES6 specification",
+  "author": {
+    "name": "Mariusz Nowak",
+    "email": "medyk@medikoo.com",
+    "url": "http://www.medikoo.com/"
+  },
+  "keywords": [
+    "iterator",
+    "array",
+    "list",
+    "set",
+    "map",
+    "generator"
+  ],
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/medikoo/es6-iterator.git"
+  },
+  "dependencies": {
+    "d": "~0.1.1",
+    "es5-ext": "~0.10.5",
+    "es6-symbol": "~2.0.1"
+  },
+  "devDependencies": {
+    "event-emitter": "~0.3.3",
+    "tad": "~0.2.1",
+    "xlint": "~0.2.2",
+    "xlint-jslint-medikoo": "~0.1.2"
+  },
+  "scripts": {
+    "lint": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream",
+    "lint-console": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch",
+    "test": "node ./node_modules/tad/bin/tad"
+  },
+  "license": "MIT",
+  "gitHead": "2addc362c6f139e4941cf4726eeb59e5960c5cef",
+  "bugs": {
+    "url": "https://github.com/medikoo/es6-iterator/issues"
+  },
+  "homepage": "https://github.com/medikoo/es6-iterator",
+  "_id": "es6-iterator@0.1.3",
+  "_shasum": "d6f58b8c4fc413c249b4baa19768f8e4d7c8944e",
+  "_from": "es6-iterator@>=0.1.3 <0.2.0",
+  "_npmVersion": "2.3.0",
+  "_nodeVersion": "0.11.16",
+  "_npmUser": {
+    "name": "medikoo",
+    "email": "medikoo+npm@medikoo.com"
+  },
+  "maintainers": [
+    {
+      "name": "medikoo",
+      "email": "medikoo+npm@medikoo.com"
+    }
+  ],
+  "dist": {
+    "shasum": "d6f58b8c4fc413c249b4baa19768f8e4d7c8944e",
+    "tarball": "http://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz"
+  },
+  "directories": {},
+  "_resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz",
+  "readme": "ERROR: No README data found!"
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/string.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/string.js
new file mode 100644 (file)
index 0000000..cdb39ea
--- /dev/null
@@ -0,0 +1,37 @@
+// Thanks @mathiasbynens
+// http://mathiasbynens.be/notes/javascript-unicode#iterating-over-symbols
+
+'use strict';
+
+var setPrototypeOf = require('es5-ext/object/set-prototype-of')
+  , d              = require('d')
+  , Iterator       = require('./')
+
+  , defineProperty = Object.defineProperty
+  , StringIterator;
+
+StringIterator = module.exports = function (str) {
+       if (!(this instanceof StringIterator)) return new StringIterator(str);
+       str = String(str);
+       Iterator.call(this, str);
+       defineProperty(this, '__length__', d('', str.length));
+
+};
+if (setPrototypeOf) setPrototypeOf(StringIterator, Iterator);
+
+StringIterator.prototype = Object.create(Iterator.prototype, {
+       constructor: d(StringIterator),
+       _next: d(function () {
+               if (!this.__list__) return;
+               if (this.__nextIndex__ < this.__length__) return this.__nextIndex__++;
+               this._unBind();
+       }),
+       _resolve: d(function (i) {
+               var char = this.__list__[i], code;
+               if (this.__nextIndex__ === this.__length__) return char;
+               code = char.charCodeAt(0);
+               if ((code >= 0xD800) && (code <= 0xDBFF)) return char + this.__list__[this.__nextIndex__++];
+               return char;
+       }),
+       toString: d(function () { return '[object String Iterator]'; })
+});
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/#/chain.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/#/chain.js
new file mode 100644 (file)
index 0000000..a414c66
--- /dev/null
@@ -0,0 +1,23 @@
+'use strict';
+
+var Iterator = require('../../');
+
+module.exports = function (t, a) {
+       var i1 = new Iterator(['raz', 'dwa', 'trzy'])
+         , i2 = new Iterator(['cztery', 'pięć', 'sześć'])
+         , i3 = new Iterator(['siedem', 'osiem', 'dziewięć'])
+
+         , iterator = t.call(i1, i2, i3);
+
+       a.deep(iterator.next(), { done: false, value: 'raz' }, "#1");
+       a.deep(iterator.next(), { done: false, value: 'dwa' }, "#2");
+       a.deep(iterator.next(), { done: false, value: 'trzy' }, "#3");
+       a.deep(iterator.next(), { done: false, value: 'cztery' }, "#4");
+       a.deep(iterator.next(), { done: false, value: 'pięć' }, "#5");
+       a.deep(iterator.next(), { done: false, value: 'sześć' }, "#6");
+       a.deep(iterator.next(), { done: false, value: 'siedem' }, "#7");
+       a.deep(iterator.next(), { done: false, value: 'osiem' }, "#8");
+       a.deep(iterator.next(), { done: false, value: 'dziewięć' }, "#9");
+       a.deep(iterator.next(), { done: true, value: undefined }, "Done #1");
+       a.deep(iterator.next(), { done: true, value: undefined }, "Done #2");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/array.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/array.js
new file mode 100644 (file)
index 0000000..ae7c219
--- /dev/null
@@ -0,0 +1,67 @@
+'use strict';
+
+var iteratorSymbol = require('es6-symbol').iterator;
+
+module.exports = function (T) {
+       return {
+               Values: function (a) {
+                       var x = ['raz', 'dwa', 'trzy', 'cztery', 'pięć', 'sześć'], it;
+
+                       it = new T(x);
+                       a(it[iteratorSymbol](), it, "@@iterator");
+                       a.deep(it.next(), { done: false, value: 'raz' }, "#1");
+                       a.deep(it.next(), { done: false, value: 'dwa' }, "#2");
+                       x.splice(1, 0, 'elo');
+                       a.deep(it.next(), { done: false, value: 'dwa' }, "Insert");
+                       a.deep(it.next(), { done: false, value: 'trzy' }, "#3");
+                       a.deep(it.next(), { done: false, value: 'cztery' }, "#4");
+                       x.pop();
+                       a.deep(it.next(), { done: false, value: 'pięć' }, "#5");
+                       a.deep(it.next(), { done: true, value: undefined }, "End");
+               },
+               "Keys & Values": function (a) {
+                       var x = ['raz', 'dwa', 'trzy', 'cztery', 'pięć', 'sześć'], it;
+
+                       it = new T(x, 'key+value');
+                       a(it[iteratorSymbol](), it, "@@iterator");
+                       a.deep(it.next(), { done: false, value: [0, 'raz'] }, "#1");
+                       a.deep(it.next(), { done: false, value: [1, 'dwa'] }, "#2");
+                       x.splice(1, 0, 'elo');
+                       a.deep(it.next(), { done: false, value: [2, 'dwa'] }, "Insert");
+                       a.deep(it.next(), { done: false, value: [3, 'trzy'] }, "#3");
+                       a.deep(it.next(), { done: false, value: [4, 'cztery'] }, "#4");
+                       x.pop();
+                       a.deep(it.next(), { done: false, value: [5, 'pięć'] }, "#5");
+                       a.deep(it.next(), { done: true, value: undefined }, "End");
+               },
+               Keys: function (a) {
+                       var x = ['raz', 'dwa', 'trzy', 'cztery', 'pięć', 'sześć'], it;
+
+                       it = new T(x, 'key');
+                       a(it[iteratorSymbol](), it, "@@iterator");
+                       a.deep(it.next(), { done: false, value: 0 }, "#1");
+                       a.deep(it.next(), { done: false, value: 1 }, "#2");
+                       x.splice(1, 0, 'elo');
+                       a.deep(it.next(), { done: false, value: 2 }, "Insert");
+                       a.deep(it.next(), { done: false, value: 3 }, "#3");
+                       a.deep(it.next(), { done: false, value: 4 }, "#4");
+                       x.pop();
+                       a.deep(it.next(), { done: false, value: 5 }, "#5");
+                       a.deep(it.next(), { done: true, value: undefined }, "End");
+               },
+               Sparse: function (a) {
+                       var x = new Array(6), it;
+
+                       x[2] = 'raz';
+                       x[4] = 'dwa';
+                       it = new T(x);
+                       a.deep(it.next(), { done: false, value: undefined }, "#1");
+                       a.deep(it.next(), { done: false, value: undefined }, "#2");
+                       a.deep(it.next(), { done: false, value: 'raz' }, "#3");
+                       a.deep(it.next(), { done: false, value: undefined }, "#4");
+                       a.deep(it.next(), { done: false, value: 'dwa' }, "#5");
+                       a.deep(it.next(), { done: false, value: undefined }, "#6");
+                       a.deep(it.next(), { done: true, value: undefined }, "End");
+               }
+       };
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/for-of.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/for-of.js
new file mode 100644 (file)
index 0000000..502e7b7
--- /dev/null
@@ -0,0 +1,35 @@
+'use strict';
+
+var ArrayIterator = require('../array')
+
+  , slice = Array.prototype.slice;
+
+module.exports = function (t, a) {
+       var i = 0, x = ['raz', 'dwa', 'trzy'], y = {}, called = 0;
+       t(x, function () {
+               a.deep(slice.call(arguments, 0, 1), [x[i]], "Array " + i + "#");
+               a(this, y, "Array: context:  " + (i++) + "#");
+       }, y);
+       i = 0;
+       t(x = 'foo', function () {
+               a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#");
+               a(this, y, "Regular String: context:  " + (i++) + "#");
+       }, y);
+       i = 0;
+       x = ['r', '💩', 'z'];
+       t('r💩z', function () {
+               a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#");
+               a(this, y, "Unicode String: context:  " + (i++) + "#");
+       }, y);
+       i = 0;
+       t(new ArrayIterator(x), function () {
+               a.deep(slice.call(arguments, 0, 1), [x[i]], "Iterator " + i + "#");
+               a(this, y, "Iterator: context:  " + (i++) + "#");
+       }, y);
+
+       t(x = ['raz', 'dwa', 'trzy'], function (value, doBreak) {
+               ++called;
+               return doBreak();
+       });
+       a(called, 1, "Break");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/get.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/get.js
new file mode 100644 (file)
index 0000000..7309590
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var iteratorSymbol = require('es6-symbol').iterator
+  , Iterator       = require('../');
+
+module.exports = function (t, a) {
+       var iterator;
+       a.throws(function () { t(); }, TypeError, "Null");
+       a.throws(function () { t({}); }, TypeError, "Plain object");
+       a.throws(function () { t({ length: 0 }); }, TypeError, "Array-like");
+       iterator = {};
+       iterator[iteratorSymbol] = function () { return new Iterator([]); };
+       a(t(iterator) instanceof Iterator, true, "Iterator");
+       a(String(t([])), '[object Array Iterator]', " Array");
+       a(String(t('foo')), '[object String Iterator]', "String");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/index.js
new file mode 100644 (file)
index 0000000..ea3621a
--- /dev/null
@@ -0,0 +1,99 @@
+'use strict';
+
+var ee             = require('event-emitter')
+  , iteratorSymbol = require('es6-symbol').iterator;
+
+module.exports = function (T) {
+       return {
+               "": function (a) {
+                       var x = ['raz', 'dwa', 'trzy', 'cztery', 'pięć'], it, y, z;
+
+                       it = new T(x);
+                       a(it[iteratorSymbol](), it, "@@iterator");
+                       y = it.next();
+                       a.deep(y, { done: false, value: 'raz' }, "#1");
+                       z = it.next();
+                       a.not(y, z, "Recreate result");
+                       a.deep(z, { done: false, value: 'dwa' }, "#2");
+                       a.deep(it.next(), { done: false, value: 'trzy' }, "#3");
+                       a.deep(it.next(), { done: false, value: 'cztery' }, "#4");
+                       a.deep(it.next(), { done: false, value: 'pięć' }, "#5");
+                       a.deep(y = it.next(), { done: true, value: undefined }, "End");
+                       a.not(y, it.next(), "Recreate result on dead");
+               },
+               Emited: function (a) {
+                       var x = ['raz', 'dwa', 'trzy', 'cztery', 'pięć'], y, it;
+
+                       y = ee();
+                       it = new T(x, y);
+                       a.deep(it.next(), { done: false, value: 'raz' }, "#1");
+                       a.deep(it.next(), { done: false, value: 'dwa' }, "#2");
+                       y.emit('_add', x.push('sześć') - 1);
+                       a.deep(it.next(), { done: false, value: 'trzy' }, "#3");
+                       x.splice(1, 0, 'półtora');
+                       y.emit('_add', 1);
+                       a.deep(it.next(), { done: false, value: 'półtora' }, "Insert");
+                       x.splice(5, 1);
+                       y.emit('_delete', 5);
+                       a.deep(it.next(), { done: false, value: 'cztery' }, "#4");
+                       a.deep(it.next(), { done: false, value: 'sześć' }, "#5");
+                       a.deep(it.next(), { done: true, value: undefined }, "End");
+               },
+               "Emited #2": function (a) {
+                       var x = ['raz', 'dwa', 'trzy', 'cztery', 'pięć', 'sześć'], y, it;
+
+                       y = ee();
+                       it = new T(x, y);
+                       a.deep(it.next(), { done: false, value: 'raz' }, "#1");
+                       a.deep(it.next(), { done: false, value: 'dwa' }, "#2");
+                       x.splice(1, 0, 'półtora');
+                       y.emit('_add', 1);
+                       x.splice(1, 0, '1.25');
+                       y.emit('_add', 1);
+                       x.splice(0, 1);
+                       y.emit('_delete', 0);
+                       a.deep(it.next(), { done: false, value: 'półtora' }, "Insert");
+                       a.deep(it.next(), { done: false, value: '1.25' }, "Insert #2");
+                       a.deep(it.next(), { done: false, value: 'trzy' }, "#3");
+                       a.deep(it.next(), { done: false, value: 'cztery' }, "#4");
+                       x.splice(5, 1);
+                       y.emit('_delete', 5);
+                       a.deep(it.next(), { done: false, value: 'sześć' }, "#5");
+                       a.deep(it.next(), { done: true, value: undefined }, "End");
+               },
+               "Emited: Clear #1": function (a) {
+                       var x = ['raz', 'dwa', 'trzy', 'cztery', 'pięć', 'sześć'], y, it;
+
+                       y = ee();
+                       it = new T(x, y);
+                       a.deep(it.next(), { done: false, value: 'raz' }, "#1");
+                       a.deep(it.next(), { done: false, value: 'dwa' }, "#2");
+                       x.length = 0;
+                       y.emit('_clear');
+                       a.deep(it.next(), { done: true, value: undefined }, "End");
+               },
+               "Emited: Clear #2": function (a) {
+                       var x = ['raz', 'dwa', 'trzy', 'cztery', 'pięć', 'sześć'], y, it;
+
+                       y = ee();
+                       it = new T(x, y);
+                       a.deep(it.next(), { done: false, value: 'raz' }, "#1");
+                       a.deep(it.next(), { done: false, value: 'dwa' }, "#2");
+                       x.length = 0;
+                       y.emit('_clear');
+                       x.push('foo');
+                       x.push('bar');
+                       a.deep(it.next(), { done: false, value: 'foo' }, "#3");
+                       a.deep(it.next(), { done: false, value: 'bar' }, "#4");
+                       x.splice(1, 0, 'półtora');
+                       y.emit('_add', 1);
+                       x.splice(1, 0, '1.25');
+                       y.emit('_add', 1);
+                       x.splice(0, 1);
+                       y.emit('_delete', 0);
+                       a.deep(it.next(), { done: false, value: 'półtora' }, "Insert");
+                       a.deep(it.next(), { done: false, value: '1.25' }, "Insert #2");
+                       a.deep(it.next(), { done: true, value: undefined }, "End");
+               }
+       };
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/is-iterable.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/is-iterable.js
new file mode 100644 (file)
index 0000000..7c5c59b
--- /dev/null
@@ -0,0 +1,18 @@
+'use strict';
+
+var iteratorSymbol = require('es6-symbol').iterator
+  , Iterator       = require('../');
+
+module.exports = function (t, a) {
+       var iterator;
+       a(t(), false, "Undefined");
+       a(t(123), false, "Number");
+       a(t({}), false, "Plain object");
+       a(t({ length: 0 }), false, "Array-like");
+       iterator = {};
+       iterator[iteratorSymbol] = function () { return new Iterator([]); };
+       a(t(iterator), true, "Iterator");
+       a(t([]), true, "Array");
+       a(t('foo'), true, "String");
+       a(t(''), true, "Empty string");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/string.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/string.js
new file mode 100644 (file)
index 0000000..d11855f
--- /dev/null
@@ -0,0 +1,23 @@
+'use strict';
+
+var iteratorSymbol = require('es6-symbol').iterator;
+
+module.exports = function (T, a) {
+       var it = new T('foobar');
+
+       a(it[iteratorSymbol](), it, "@@iterator");
+       a.deep(it.next(), { done: false, value: 'f' }, "#1");
+       a.deep(it.next(), { done: false, value: 'o' }, "#2");
+       a.deep(it.next(), { done: false, value: 'o' }, "#3");
+       a.deep(it.next(), { done: false, value: 'b' }, "#4");
+       a.deep(it.next(), { done: false, value: 'a' }, "#5");
+       a.deep(it.next(), { done: false, value: 'r' }, "#6");
+       a.deep(it.next(), { done: true, value: undefined }, "End");
+
+       a.h1("Outside of BMP");
+       it = new T('r💩z');
+       a.deep(it.next(), { done: false, value: 'r' }, "#1");
+       a.deep(it.next(), { done: false, value: '💩' }, "#2");
+       a.deep(it.next(), { done: false, value: 'z' }, "#3");
+       a.deep(it.next(), { done: true, value: undefined }, "End");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/valid-iterable.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/valid-iterable.js
new file mode 100644 (file)
index 0000000..7760b01
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var iteratorSymbol = require('es6-symbol').iterator
+  , Iterator       = require('../');
+
+module.exports = function (t, a) {
+       var obj;
+       a.throws(function () { t(); }, TypeError, "Undefined");
+       a.throws(function () { t({}); }, TypeError, "Plain object");
+       a.throws(function () { t({ length: 0 }); }, TypeError, "Array-like");
+       obj = {};
+       obj[iteratorSymbol] = function () { return new Iterator([]); };
+       a(t(obj), obj, "Iterator");
+       obj = [];
+       a(t(obj), obj, 'Array');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/valid-iterable.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/valid-iterable.js
new file mode 100644 (file)
index 0000000..d330997
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var isIterable = require('./is-iterable');
+
+module.exports = function (value) {
+       if (!isIterable(value)) throw new TypeError(value + " is not iterable");
+       return value;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/.lint b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/.lint
new file mode 100644 (file)
index 0000000..1851752
--- /dev/null
@@ -0,0 +1,13 @@
+@root
+
+module
+
+tabs
+indent 2
+maxlen 100
+
+ass
+nomen
+plusplus
+newcap
+vars
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/.npmignore b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/.npmignore
new file mode 100644 (file)
index 0000000..155e41f
--- /dev/null
@@ -0,0 +1,4 @@
+.DS_Store
+/node_modules
+/npm-debug.log
+/.lintcache
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/.travis.yml b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/.travis.yml
new file mode 100644 (file)
index 0000000..afd3509
--- /dev/null
@@ -0,0 +1,9 @@
+language: node_js
+node_js:
+  - 0.8
+  - 0.10
+  - 0.11
+
+notifications:
+  email:
+    - medikoo+es6-symbol@medikoo.com
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/CHANGES b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/CHANGES
new file mode 100644 (file)
index 0000000..df8c27e
--- /dev/null
@@ -0,0 +1,34 @@
+v2.0.1  --  2015.01.28
+* Fix Symbol.prototype[Symbol.isPrimitive] implementation
+* Improve validation within Symbol.prototype.toString and
+  Symbol.prototype.valueOf
+
+v2.0.0  --  2015.01.28
+* Update up to changes in specification:
+  * Implement `for` and `keyFor`
+  * Remove `Symbol.create` and `Symbol.isRegExp`
+  * Add `Symbol.match`, `Symbol.replace`, `Symbol.search`, `Symbol.species` and
+    `Symbol.split`
+* Rename `validSymbol` to `validateSymbol`
+* Improve documentation
+* Remove dead test modules
+
+v1.0.0  --  2015.01.26
+* Fix enumerability for symbol properties set normally (e.g. obj[symbol] = value)
+* Introduce initialization via hidden constructor
+* Fix isSymbol handling of polyfill values when native Symbol is present
+* Fix spelling of LICENSE
+* Configure lint scripts
+
+v0.1.1  --  2014.10.07
+* Fix isImplemented, so it returns true in case of polyfill
+* Improve documentations
+
+v0.1.0  --  2014.04.28
+* Assure strictly npm dependencies
+* Update to use latest versions of dependencies
+* Fix implementation detection so it doesn't crash on `String(symbol)`
+* throw on `new Symbol()` (as decided by TC39)
+
+v0.0.0  --  2013.11.15
+* Initial (dev) version
\ No newline at end of file
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/LICENSE b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/LICENSE
new file mode 100644 (file)
index 0000000..04724a3
--- /dev/null
@@ -0,0 +1,19 @@
+Copyright (C) 2013-2015 Mariusz Nowak (www.medikoo.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/README.md b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/README.md
new file mode 100644 (file)
index 0000000..95d6780
--- /dev/null
@@ -0,0 +1,71 @@
+# es6-symbol
+## ECMAScript 6 Symbol polyfill
+
+For more information about symbols see following links
+- [Symbols in ECMAScript 6 by Axel Rauschmayer](http://www.2ality.com/2014/12/es6-symbols.html)
+- [MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol)
+- [Specification](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-symbol-constructor)
+
+### Limitations
+
+Underneath it uses real string property names which can easily be retrieved, however accidental collision with other property names is unlikely.
+
+### Usage
+
+If you'd like to use native version when it exists and fallback to polyfill if it doesn't (but without implementing `Symbol` on global scope), do:
+
+```javascript
+var Symbol = require('es6-symbol');
+```
+
+If you want to make sure your environment implements `Symbol`, do:
+
+```javascript
+require('es6-symbol/implement');
+```
+
+If you strictly want to use polyfill even if native `Symbol` exists (hard to find a good reason for that), do:
+
+```javascript
+var Symbol = require('es6-symbol/polyfill');
+```
+
+#### API
+
+Best is to refer to [specification](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-symbol-objects). Still if you want quick look, follow examples:
+
+```javascript
+var Symbol = require('es6-symbol');
+
+var symbol = Symbol('My custom symbol');
+var x = {};
+
+x[symbol] = 'foo';
+console.log(x[symbol]); 'foo'
+
+// Detect iterable:
+var iterator, result;
+if (possiblyIterable[Symbol.iterator]) {
+  iterator = possiblyIterable[Symbol.iterator]();
+  result = iterator.next();
+  while(!result.done) {
+    console.log(result.value);
+    result = iterator.next();
+  }
+}
+```
+
+### Installation
+#### NPM
+
+In your project path:
+
+       $ npm install es6-symbol
+
+##### Browser
+
+To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)
+
+## Tests [![Build Status](https://travis-ci.org/medikoo/es6-symbol.png)](https://travis-ci.org/medikoo/es6-symbol)
+
+       $ npm test
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/implement.js
new file mode 100644 (file)
index 0000000..153edac
--- /dev/null
@@ -0,0 +1,7 @@
+'use strict';
+
+if (!require('./is-implemented')()) {
+       Object.defineProperty(require('es5-ext/global'), 'Symbol',
+               { value: require('./polyfill'), configurable: true, enumerable: false,
+                       writable: true });
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/index.js
new file mode 100644 (file)
index 0000000..609f1fa
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./is-implemented')() ? Symbol : require('./polyfill');
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/is-implemented.js
new file mode 100644 (file)
index 0000000..53759f3
--- /dev/null
@@ -0,0 +1,18 @@
+'use strict';
+
+module.exports = function () {
+       var symbol;
+       if (typeof Symbol !== 'function') return false;
+       symbol = Symbol('test symbol');
+       try { String(symbol); } catch (e) { return false; }
+       if (typeof Symbol.iterator === 'symbol') return true;
+
+       // Return 'true' for polyfills
+       if (typeof Symbol.isConcatSpreadable !== 'object') return false;
+       if (typeof Symbol.iterator !== 'object') return false;
+       if (typeof Symbol.toPrimitive !== 'object') return false;
+       if (typeof Symbol.toStringTag !== 'object') return false;
+       if (typeof Symbol.unscopables !== 'object') return false;
+
+       return true;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/is-native-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/is-native-implemented.js
new file mode 100644 (file)
index 0000000..a8cb8b8
--- /dev/null
@@ -0,0 +1,8 @@
+// Exports true if environment provides native `Symbol` implementation
+
+'use strict';
+
+module.exports = (function () {
+       if (typeof Symbol !== 'function') return false;
+       return (typeof Symbol.iterator === 'symbol');
+}());
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/is-symbol.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/is-symbol.js
new file mode 100644 (file)
index 0000000..beeba2c
--- /dev/null
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = function (x) {
+       return (x && ((typeof x === 'symbol') || (x['@@toStringTag'] === 'Symbol'))) || false;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/package.json b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/package.json
new file mode 100644 (file)
index 0000000..0efffea
--- /dev/null
@@ -0,0 +1,63 @@
+{
+  "name": "es6-symbol",
+  "version": "2.0.1",
+  "description": "ECMAScript6 Symbol polyfill",
+  "author": {
+    "name": "Mariusz Nowak",
+    "email": "medyk@medikoo.com",
+    "url": "http://www.medikoo.com/"
+  },
+  "keywords": [
+    "symbol",
+    "private",
+    "property",
+    "es6",
+    "ecmascript",
+    "harmony"
+  ],
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/medikoo/es6-symbol.git"
+  },
+  "dependencies": {
+    "d": "~0.1.1",
+    "es5-ext": "~0.10.5"
+  },
+  "devDependencies": {
+    "tad": "~0.2.1",
+    "xlint": "~0.2.2",
+    "xlint-jslint-medikoo": "~0.1.2"
+  },
+  "scripts": {
+    "lint": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream",
+    "lint-console": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch",
+    "test": "node ./node_modules/tad/bin/tad"
+  },
+  "license": "MIT",
+  "gitHead": "51f6938d7830269fefa38f02eb912f5472b3ccd7",
+  "bugs": {
+    "url": "https://github.com/medikoo/es6-symbol/issues"
+  },
+  "homepage": "https://github.com/medikoo/es6-symbol",
+  "_id": "es6-symbol@2.0.1",
+  "_shasum": "761b5c67cfd4f1d18afb234f691d678682cb3bf3",
+  "_from": "es6-symbol@>=2.0.1 <2.1.0",
+  "_npmVersion": "1.4.28",
+  "_npmUser": {
+    "name": "medikoo",
+    "email": "medikoo+npm@medikoo.com"
+  },
+  "maintainers": [
+    {
+      "name": "medikoo",
+      "email": "medikoo+npm@medikoo.com"
+    }
+  ],
+  "dist": {
+    "shasum": "761b5c67cfd4f1d18afb234f691d678682cb3bf3",
+    "tarball": "http://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz"
+  },
+  "directories": {},
+  "_resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz",
+  "readme": "ERROR: No README data found!"
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/polyfill.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/polyfill.js
new file mode 100644 (file)
index 0000000..735eb67
--- /dev/null
@@ -0,0 +1,77 @@
+'use strict';
+
+var d              = require('d')
+  , validateSymbol = require('./validate-symbol')
+
+  , create = Object.create, defineProperties = Object.defineProperties
+  , defineProperty = Object.defineProperty, objPrototype = Object.prototype
+  , Symbol, HiddenSymbol, globalSymbols = create(null);
+
+var generateName = (function () {
+       var created = create(null);
+       return function (desc) {
+               var postfix = 0, name;
+               while (created[desc + (postfix || '')]) ++postfix;
+               desc += (postfix || '');
+               created[desc] = true;
+               name = '@@' + desc;
+               defineProperty(objPrototype, name, d.gs(null, function (value) {
+                       defineProperty(this, name, d(value));
+               }));
+               return name;
+       };
+}());
+
+HiddenSymbol = function Symbol(description) {
+       if (this instanceof HiddenSymbol) throw new TypeError('TypeError: Symbol is not a constructor');
+       return Symbol(description);
+};
+module.exports = Symbol = function Symbol(description) {
+       var symbol;
+       if (this instanceof Symbol) throw new TypeError('TypeError: Symbol is not a constructor');
+       symbol = create(HiddenSymbol.prototype);
+       description = (description === undefined ? '' : String(description));
+       return defineProperties(symbol, {
+               __description__: d('', description),
+               __name__: d('', generateName(description))
+       });
+};
+defineProperties(Symbol, {
+       for: d(function (key) {
+               if (globalSymbols[key]) return globalSymbols[key];
+               return (globalSymbols[key] = Symbol(String(key)));
+       }),
+       keyFor: d(function (s) {
+               var key;
+               validateSymbol(s);
+               for (key in globalSymbols) if (globalSymbols[key] === s) return key;
+       }),
+       hasInstance: d('', Symbol('hasInstance')),
+       isConcatSpreadable: d('', Symbol('isConcatSpreadable')),
+       iterator: d('', Symbol('iterator')),
+       match: d('', Symbol('match')),
+       replace: d('', Symbol('replace')),
+       search: d('', Symbol('search')),
+       species: d('', Symbol('species')),
+       split: d('', Symbol('split')),
+       toPrimitive: d('', Symbol('toPrimitive')),
+       toStringTag: d('', Symbol('toStringTag')),
+       unscopables: d('', Symbol('unscopables'))
+});
+defineProperties(HiddenSymbol.prototype, {
+       constructor: d(Symbol),
+       toString: d('', function () { return this.__name__; })
+});
+
+defineProperties(Symbol.prototype, {
+       toString: d(function () { return 'Symbol (' + validateSymbol(this).__description__ + ')'; }),
+       valueOf: d(function () { return validateSymbol(this); })
+});
+defineProperty(Symbol.prototype, Symbol.toPrimitive, d('',
+       function () { return validateSymbol(this); }));
+defineProperty(Symbol.prototype, Symbol.toStringTag, d('c', 'Symbol'));
+
+defineProperty(HiddenSymbol.prototype, Symbol.toPrimitive,
+       d('c', Symbol.prototype[Symbol.toPrimitive]));
+defineProperty(HiddenSymbol.prototype, Symbol.toStringTag,
+       d('c', Symbol.prototype[Symbol.toStringTag]));
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/implement.js
new file mode 100644 (file)
index 0000000..eb35c30
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof Symbol, 'function'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/index.js
new file mode 100644 (file)
index 0000000..62b3296
--- /dev/null
@@ -0,0 +1,12 @@
+'use strict';
+
+var d = require('d')
+
+  , defineProperty = Object.defineProperty;
+
+module.exports = function (T, a) {
+       var symbol = T('test'), x = {};
+       defineProperty(x, symbol, d('foo'));
+       a(x.test, undefined, "Name");
+       a(x[symbol], 'foo', "Get");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/is-implemented.js
new file mode 100644 (file)
index 0000000..bb0d645
--- /dev/null
@@ -0,0 +1,14 @@
+'use strict';
+
+var global   = require('es5-ext/global')
+  , polyfill = require('../polyfill');
+
+module.exports = function (t, a) {
+       var cache;
+       a(typeof t(), 'boolean');
+       cache = global.Symbol;
+       global.Symbol = polyfill;
+       a(t(), true);
+       if (cache === undefined) delete global.Symbol;
+       else global.Symbol = cache;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/is-native-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/is-native-implemented.js
new file mode 100644 (file)
index 0000000..df8ba03
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t, 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/is-symbol.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/is-symbol.js
new file mode 100644 (file)
index 0000000..ac24b9a
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var SymbolPoly = require('../polyfill');
+
+module.exports = function (t, a) {
+       a(t(undefined), false, "Undefined");
+       a(t(null), false, "Null");
+       a(t(true), false, "Primitive");
+       a(t('raz'), false, "String");
+       a(t({}), false, "Object");
+       a(t([]), false, "Array");
+       if (typeof Symbol !== 'undefined') {
+               a(t(Symbol()), true, "Native");
+       }
+       a(t(SymbolPoly()), true, "Polyfill");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/polyfill.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/polyfill.js
new file mode 100644 (file)
index 0000000..83fb5e9
--- /dev/null
@@ -0,0 +1,27 @@
+'use strict';
+
+var d        = require('d')
+  , isSymbol = require('../is-symbol')
+
+  , defineProperty = Object.defineProperty;
+
+module.exports = function (T, a) {
+       var symbol = T('test'), x = {};
+       defineProperty(x, symbol, d('foo'));
+       a(x.test, undefined, "Name");
+       a(x[symbol], 'foo', "Get");
+       a(x instanceof T, false);
+
+       a(isSymbol(symbol), true, "Symbol");
+       a(isSymbol(T.iterator), true, "iterator");
+       a(isSymbol(T.toStringTag), true, "toStringTag");
+
+       x = {};
+       x[symbol] = 'foo';
+       a.deep(Object.getOwnPropertyDescriptor(x, symbol), { configurable: true, enumerable: false,
+               value: 'foo', writable: true });
+       symbol = T.for('marko');
+       a(isSymbol(symbol), true);
+       a(T.for('marko'), symbol);
+       a(T.keyFor(symbol), 'marko');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/validate-symbol.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test/validate-symbol.js
new file mode 100644 (file)
index 0000000..2c8f84c
--- /dev/null
@@ -0,0 +1,19 @@
+'use strict';
+
+var SymbolPoly = require('../polyfill');
+
+module.exports = function (t, a) {
+       var symbol;
+       a.throws(function () { t(undefined); }, TypeError, "Undefined");
+       a.throws(function () { t(null); }, TypeError, "Null");
+       a.throws(function () { t(true); }, TypeError, "Primitive");
+       a.throws(function () { t('raz'); }, TypeError, "String");
+       a.throws(function () { t({}); }, TypeError, "Object");
+       a.throws(function () { t([]); }, TypeError, "Array");
+       if (typeof Symbol !== 'undefined') {
+               symbol = Symbol();
+               a(t(symbol), symbol, "Native");
+       }
+       symbol = SymbolPoly();
+       a(t(symbol), symbol, "Polyfill");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/validate-symbol.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/validate-symbol.js
new file mode 100644 (file)
index 0000000..4275004
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var isSymbol = require('./is-symbol');
+
+module.exports = function (value) {
+       if (!isSymbol(value)) throw new TypeError(value + " is not a symbol");
+       return value;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/package.json b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/package.json
new file mode 100644 (file)
index 0000000..07973df
--- /dev/null
@@ -0,0 +1,64 @@
+{
+  "name": "es6-weak-map",
+  "version": "0.1.4",
+  "description": "ECMAScript6 WeakMap polyfill",
+  "author": {
+    "name": "Mariusz Nowak",
+    "email": "medyk@medikoo.com",
+    "url": "http://www.medikoo.com/"
+  },
+  "keywords": [
+    "map",
+    "weakmap",
+    "collection",
+    "es6",
+    "harmony",
+    "list",
+    "hash",
+    "gc"
+  ],
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/medikoo/es6-weak-map.git"
+  },
+  "dependencies": {
+    "d": "~0.1.1",
+    "es5-ext": "~0.10.6",
+    "es6-iterator": "~0.1.3",
+    "es6-symbol": "~2.0.1"
+  },
+  "devDependencies": {
+    "tad": "~0.2.2"
+  },
+  "scripts": {
+    "test": "node ./node_modules/tad/bin/tad"
+  },
+  "license": "MIT",
+  "gitHead": "e68802395b82a700257374c379cfaafe84ee8552",
+  "bugs": {
+    "url": "https://github.com/medikoo/es6-weak-map/issues"
+  },
+  "homepage": "https://github.com/medikoo/es6-weak-map",
+  "_id": "es6-weak-map@0.1.4",
+  "_shasum": "706cef9e99aa236ba7766c239c8b9e286ea7d228",
+  "_from": "es6-weak-map@>=0.1.2 <0.2.0",
+  "_npmVersion": "2.7.4",
+  "_nodeVersion": "0.12.2",
+  "_npmUser": {
+    "name": "medikoo",
+    "email": "medikoo+npm@medikoo.com"
+  },
+  "maintainers": [
+    {
+      "name": "medikoo",
+      "email": "medikoo+npm@medikoo.com"
+    }
+  ],
+  "dist": {
+    "shasum": "706cef9e99aa236ba7766c239c8b9e286ea7d228",
+    "tarball": "http://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz"
+  },
+  "directories": {},
+  "_resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz",
+  "readme": "ERROR: No README data found!"
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/polyfill.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/polyfill.js
new file mode 100644 (file)
index 0000000..1d15660
--- /dev/null
@@ -0,0 +1,75 @@
+'use strict';
+
+var setPrototypeOf    = require('es5-ext/object/set-prototype-of')
+  , object            = require('es5-ext/object/valid-object')
+  , value             = require('es5-ext/object/valid-value')
+  , d                 = require('d')
+  , getIterator       = require('es6-iterator/get')
+  , forOf             = require('es6-iterator/for-of')
+  , toStringTagSymbol = require('es6-symbol').toStringTag
+  , isNative          = require('./is-native-implemented')
+
+  , isArray = Array.isArray, defineProperty = Object.defineProperty, random = Math.random
+  , hasOwnProperty = Object.prototype.hasOwnProperty
+  , genId, WeakMapPoly;
+
+genId = (function () {
+       var generated = Object.create(null);
+       return function () {
+               var id;
+               do { id = random().toString(36).slice(2); } while (generated[id]);
+               generated[id] = true;
+               return id;
+       };
+}());
+
+module.exports = WeakMapPoly = function (/*iterable*/) {
+       var iterable = arguments[0];
+       if (!(this instanceof WeakMapPoly)) return new WeakMapPoly(iterable);
+       if (this.__weakMapData__ !== undefined) {
+               throw new TypeError(this + " cannot be reinitialized");
+       }
+       if (iterable != null) {
+               if (!isArray(iterable)) iterable = getIterator(iterable);
+       }
+       defineProperty(this, '__weakMapData__', d('c', '$weakMap$' + genId()));
+       if (!iterable) return;
+       forOf(iterable, function (val) {
+               value(val);
+               this.set(val[0], val[1]);
+       }, this);
+};
+
+if (isNative) {
+       if (setPrototypeOf) setPrototypeOf(WeakMapPoly, WeakMap);
+       WeakMapPoly.prototype = Object.create(WeakMap.prototype, {
+               constructor: d(WeakMapPoly)
+       });
+}
+
+Object.defineProperties(WeakMapPoly.prototype, {
+       clear: d(function () {
+               defineProperty(this, '__weakMapData__', d('c', '$weakMap$' + genId()));
+       }),
+       delete: d(function (key) {
+               if (hasOwnProperty.call(object(key), this.__weakMapData__)) {
+                       delete key[this.__weakMapData__];
+                       return true;
+               }
+               return false;
+       }),
+       get: d(function (key) {
+               if (hasOwnProperty.call(object(key), this.__weakMapData__)) {
+                       return key[this.__weakMapData__];
+               }
+       }),
+       has: d(function (key) {
+               return hasOwnProperty.call(object(key), this.__weakMapData__);
+       }),
+       set: d(function (key, value) {
+               defineProperty(object(key), this.__weakMapData__, d('c', value));
+               return this;
+       }),
+       toString: d(function () { return '[object WeakMap]'; })
+});
+defineProperty(WeakMapPoly.prototype, toStringTagSymbol, d('c', 'WeakMap'));
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/implement.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/implement.js
new file mode 100644 (file)
index 0000000..860027e
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof WeakMap, 'function'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/index.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/index.js
new file mode 100644 (file)
index 0000000..9b26e4f
--- /dev/null
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (T, a) {
+       var x = {};
+       a((new T([[x, 'foo']])).get(x), 'foo');
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/is-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/is-implemented.js
new file mode 100644 (file)
index 0000000..1a88328
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/is-native-implemented.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/is-native-implemented.js
new file mode 100644 (file)
index 0000000..df8ba03
--- /dev/null
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t, 'boolean'); };
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/is-weak-map.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/is-weak-map.js
new file mode 100644 (file)
index 0000000..ba8c045
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var WeakMapPoly = require('../polyfill');
+
+module.exports = function (t, a) {
+       a(t(undefined), false, "Undefined");
+       a(t(null), false, "Null");
+       a(t(true), false, "Primitive");
+       a(t('raz'), false, "String");
+       a(t({}), false, "Object");
+       a(t([]), false, "Array");
+       if (typeof WeakMap !== 'undefined') {
+               a(t(new WeakMap()), true, "Native");
+       }
+       a(t(new WeakMapPoly()), true, "Polyfill");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/polyfill.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/polyfill.js
new file mode 100644 (file)
index 0000000..1a4885b
--- /dev/null
@@ -0,0 +1,22 @@
+'use strict';
+
+module.exports = function (T, a) {
+       var x = {}, y = {}, z = {}, arr = [[x, 'raz'], [y, 'dwa']], map = new T(arr);
+
+       a(map instanceof T, true, "WeakMap");
+       a(map.has(x), true, "Has: true");
+       a(map.get(x), 'raz', "Get: contains");
+       a(map.has(z), false, "Has: false");
+       a(map.get(z), undefined, "Get: doesn't contain");
+       a(map.set(z, 'trzy'), map, "Set: return");
+       a(map.has(z), true, "Add");
+       a(map.delete({}), false, "Delete: false");
+
+       a(map.delete(x), true, "Delete: true");
+       a(map.get(x), undefined, "Get: after delete");
+       a(map.has(x), false, "Has: after delete");
+
+       a(map.has(y), true, "Has: pre clear");
+       map.clear();
+       a(map.has(y), false, "Has: after clear");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/valid-weak-map.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test/valid-weak-map.js
new file mode 100644 (file)
index 0000000..a782342
--- /dev/null
@@ -0,0 +1,19 @@
+'use strict';
+
+var WeakMapPoly = require('../polyfill');
+
+module.exports = function (t, a) {
+       var map;
+       a.throws(function () { t(undefined); }, TypeError, "Undefined");
+       a.throws(function () { t(null); }, TypeError, "Null");
+       a.throws(function () { t(true); }, TypeError, "Primitive");
+       a.throws(function () { t('raz'); }, TypeError, "String");
+       a.throws(function () { t({}); }, TypeError, "Object");
+       a.throws(function () { t([]); }, TypeError, "Array");
+       if (typeof WeakMap !== 'undefined') {
+               map = new WeakMap();
+               a(t(map), map, "Native");
+       }
+       map = new WeakMapPoly();
+       a(t(map), map, "Polyfill");
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/valid-weak-map.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/valid-weak-map.js
new file mode 100644 (file)
index 0000000..bfb579f
--- /dev/null
@@ -0,0 +1,8 @@
+'use strict';
+
+var isWeakMap = require('./is-weak-map');
+
+module.exports = function (x) {
+       if (!isWeakMap(x)) throw new TypeError(x + " is not a WeakMap");
+       return x;
+};
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/mixto/LICENSE.md b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/mixto/LICENSE.md
new file mode 100644 (file)
index 0000000..493db50
--- /dev/null
@@ -0,0 +1,20 @@
+Copyright (c) 2013 GitHub Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/mixto/README.md b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/mixto/README.md
new file mode 100644 (file)
index 0000000..7c450e3
--- /dev/null
@@ -0,0 +1,36 @@
+# Mixto: A simple mixin superclass [![Build Status](https://travis-ci.org/atom/mixto.png?branch=master)](https://travis-ci.org/atom/mixto)
+
+To create a mixin, subclass mixto:
+
+```coffee
+Mixin = require 'mixto'
+
+class MyMixin extends Mixin
+  @classMethod: -> console.log("foo")
+  instanceMethod: -> console.log("bar")
+```
+
+Then mix into classes with `.includeInto`:
+
+```coffee
+class MyClass
+  MyMixin.includeInto(this)
+  
+MyClass.classMethod()
+(new MyClass).instanceMethod()
+```
+
+Or extend individual objects with `.extend`:
+
+```coffee-script
+myObject = {a: 1, b: 2}
+MyMixin.extend(myObject)
+myObject.instanceMethod()
+```
+
+Or build standalone instances of your 'mixin':
+
+```
+standalone = new MyMixin
+standalone.instanceMethod()
+```
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/mixto/lib/mixin.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/mixto/lib/mixin.js
new file mode 100644 (file)
index 0000000..a6fdd4f
--- /dev/null
@@ -0,0 +1,51 @@
+(function() {
+  var ExcludedClassProperties, ExcludedPrototypeProperties, Mixin, name;
+
+  module.exports = Mixin = (function() {
+    Mixin.includeInto = function(constructor) {
+      var name, value, _ref;
+      this.extend(constructor.prototype);
+      for (name in this) {
+        value = this[name];
+        if (ExcludedClassProperties.indexOf(name) === -1) {
+          if (!constructor.hasOwnProperty(name)) {
+            constructor[name] = value;
+          }
+        }
+      }
+      return (_ref = this.included) != null ? _ref.call(constructor) : void 0;
+    };
+
+    Mixin.extend = function(object) {
+      var name, _i, _len, _ref, _ref1;
+      _ref = Object.getOwnPropertyNames(this.prototype);
+      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+        name = _ref[_i];
+        if (ExcludedPrototypeProperties.indexOf(name) === -1) {
+          if (!object.hasOwnProperty(name)) {
+            object[name] = this.prototype[name];
+          }
+        }
+      }
+      return (_ref1 = this.prototype.extended) != null ? _ref1.call(object) : void 0;
+    };
+
+    function Mixin() {
+      if (typeof this.extended === "function") {
+        this.extended();
+      }
+    }
+
+    return Mixin;
+
+  })();
+
+  ExcludedClassProperties = ['__super__'];
+
+  for (name in Mixin) {
+    ExcludedClassProperties.push(name);
+  }
+
+  ExcludedPrototypeProperties = ['constructor', 'extended'];
+
+}).call(this);
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/mixto/package.json b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/mixto/package.json
new file mode 100644 (file)
index 0000000..be85e24
--- /dev/null
@@ -0,0 +1,66 @@
+{
+  "name": "mixto",
+  "version": "1.0.0",
+  "description": "A mixin superclass. Its subclasses have `.extend` and `.includeInto` methods to mix behavior into other objects and classes.",
+  "main": "lib/mixin",
+  "scripts": {
+    "prepublish": "grunt clean coffee lint",
+    "test": "grunt test"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/atom/mixto.git"
+  },
+  "keywords": [
+    "mixin",
+    "trait"
+  ],
+  "bugs": {
+    "url": "https://github.com/atom/mixto/issues"
+  },
+  "licenses": [
+    {
+      "type": "MIT",
+      "url": "http://github.com/atom/mixto/raw/master/LICENSE.md"
+    }
+  ],
+  "devDependencies": {
+    "coffee-script": "~1.6.3",
+    "jasmine-focused": "~0.19.0",
+    "grunt-contrib-coffee": "~0.7.0",
+    "grunt-cli": "~0.1.8",
+    "grunt": "~0.4.1",
+    "grunt-shell": "~0.2.2",
+    "grunt-coffeelint": "0.0.6",
+    "rimraf": "~2.2.2"
+  },
+  "author": {
+    "name": "Nathan Sobo"
+  },
+  "_id": "mixto@1.0.0",
+  "dist": {
+    "shasum": "c320ef61b52f2898f522e17d8bbc6d506d8425b6",
+    "tarball": "http://registry.npmjs.org/mixto/-/mixto-1.0.0.tgz"
+  },
+  "_from": "mixto@>=1.0.0 <2.0.0",
+  "_npmVersion": "1.3.2",
+  "_npmUser": {
+    "name": "kevinsawicki",
+    "email": "kevinsawicki@gmail.com"
+  },
+  "maintainers": [
+    {
+      "name": "nathansobo",
+      "email": "nathansobo@gmail.com"
+    },
+    {
+      "name": "kevinsawicki",
+      "email": "kevinsawicki@gmail.com"
+    }
+  ],
+  "directories": {},
+  "_shasum": "c320ef61b52f2898f522e17d8bbc6d506d8425b6",
+  "_resolved": "https://registry.npmjs.org/mixto/-/mixto-1.0.0.tgz",
+  "readme": "ERROR: No README data found!",
+  "homepage": "https://github.com/atom/mixto"
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/property-accessors/LICENSE.md b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/property-accessors/LICENSE.md
new file mode 100644 (file)
index 0000000..493db50
--- /dev/null
@@ -0,0 +1,20 @@
+Copyright (c) 2013 GitHub Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/property-accessors/README.md b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/property-accessors/README.md
new file mode 100644 (file)
index 0000000..6ef1e04
--- /dev/null
@@ -0,0 +1,80 @@
+# Property Accessors Mixin [![Build Status](https://travis-ci.org/atom/property-accessors.svg?branch=master)](https://travis-ci.org/atom/property-accessors)
+
+A mixin for defining dynamic properties.
+
+## Basic Usage
+
+To define a basic property accessor, use the `accessor` declaration. If you've
+included the mixin into a class, you define a prototype property by calling
+`@::accessor` on its prototype.
+
+```coffee
+PropertyAccessors = require 'property-accessors'
+
+class Vehicle
+  PropertyAccessors.includeInto(this)
+
+  @::accessor 'type',
+    get: ->
+      switch @doorCount
+        when 4 then 'sedan' # i know this isn't strictly accurate
+        when 2 then 'coupe'
+    set: (type) ->
+      switch type
+        when 'sedan' then @doorCount = 4
+        when 'coupe' then @doorCount = 2
+
+car = new Vehicle
+car.doorCount = 2
+car.type # => 'coupe'
+```
+
+You can define a class-level property by *extending* with the mixin rather than
+including it (which extends the prototype).
+
+```coffee
+class Vehicle
+  PropertyAccessors.extend(this)
+
+  @accessor 'vehicleCount', get: -> @allVehicles.length  
+```
+
+You can just pass a single function if you only want to define a getter:
+
+```coffee
+class Vehicle
+  PropertyAccessors.includeInto(this)
+
+  @::accessor 'type', -> # ...
+```
+
+## Fancy Usage
+
+### Lazy Accessors
+
+Lazy accessors call a function the first time a property is accessed. You are
+still free to overwrite this value by assigning the property explicitly.
+
+```coffee
+class ScienceLab
+  PropertyAccessors.includeInto(this)
+
+  @::lazyAccessor 'crazyComputation', -> computeCrazyComputation()
+```
+
+### Advised Accessors
+
+Advised accessors allow you to call code before the reading or writing of a
+property value. If a property is being assigned, your advice function is called
+with the value being assigned and the old value.
+
+```coffee
+class SpyStation
+  @advisedAccessor 'online',
+    get: -> @ensureAllSystemsNominal()
+    set: -> @ensureUserIsSpy()
+
+station = new SpyStation
+station.online = true # ensures user is a spy, then assigns true
+station.online # ensures all systems are nominal, then returns true
+```
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/property-accessors/lib/property-accessors.js b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/property-accessors/lib/property-accessors.js
new file mode 100644 (file)
index 0000000..4cb92d8
--- /dev/null
@@ -0,0 +1,74 @@
+(function() {
+  var Mixin, PropertyAccessors, WeakMap, _ref, _ref1,
+    __hasProp = {}.hasOwnProperty,
+    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
+
+  Mixin = require('mixto');
+
+  WeakMap = (_ref = global.WeakMap) != null ? _ref : require('es6-weak-map');
+
+  module.exports = PropertyAccessors = (function(_super) {
+    __extends(PropertyAccessors, _super);
+
+    function PropertyAccessors() {
+      _ref1 = PropertyAccessors.__super__.constructor.apply(this, arguments);
+      return _ref1;
+    }
+
+    PropertyAccessors.prototype.accessor = function(name, definition) {
+      if (typeof definition === 'function') {
+        definition = {
+          get: definition
+        };
+      }
+      return Object.defineProperty(this, name, definition);
+    };
+
+    PropertyAccessors.prototype.advisedAccessor = function(name, definition) {
+      var getAdvice, setAdvice, values;
+      if (typeof definition === 'function') {
+        getAdvice = definition;
+      } else {
+        getAdvice = definition.get;
+        setAdvice = definition.set;
+      }
+      values = new WeakMap;
+      return this.accessor(name, {
+        get: function() {
+          if (getAdvice != null) {
+            getAdvice.call(this);
+          }
+          return values.get(this);
+        },
+        set: function(newValue) {
+          if (setAdvice != null) {
+            setAdvice.call(this, newValue, values.get(this));
+          }
+          return values.set(this, newValue);
+        }
+      });
+    };
+
+    PropertyAccessors.prototype.lazyAccessor = function(name, definition) {
+      var values;
+      values = new WeakMap;
+      return this.accessor(name, {
+        get: function() {
+          if (values.has(this)) {
+            return values.get(this);
+          } else {
+            values.set(this, definition.call(this));
+            return values.get(this);
+          }
+        },
+        set: function(value) {
+          return values.set(this, value);
+        }
+      });
+    };
+
+    return PropertyAccessors;
+
+  })(Mixin);
+
+}).call(this);
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/property-accessors/package.json b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/node_modules/property-accessors/package.json
new file mode 100644 (file)
index 0000000..66179a4
--- /dev/null
@@ -0,0 +1,75 @@
+{
+  "name": "property-accessors",
+  "version": "1.1.3",
+  "description": "A mixin for declaring property accessors",
+  "main": "lib/property-accessors",
+  "scripts": {
+    "test": "grunt test",
+    "publish": "grunt"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/atom/property-accessors.git"
+  },
+  "keywords": [
+    "property",
+    "accessors",
+    "metaprogramming"
+  ],
+  "author": {
+    "name": "Nathan Sobo"
+  },
+  "licenses": [
+    {
+      "type": "MIT",
+      "url": "http://github.com/atom/telepath/raw/master/LICENSE.md"
+    }
+  ],
+  "bugs": {
+    "url": "https://github.com/atom/property-accessors/issues"
+  },
+  "homepage": "http://atom.github.io/property-accessors/",
+  "dependencies": {
+    "mixto": "1.x",
+    "es6-weak-map": "^0.1.2"
+  },
+  "devDependencies": {
+    "jasmine-focused": "1.x",
+    "grunt-contrib-coffee": "~0.7.0",
+    "grunt-cli": "~0.1.8",
+    "grunt": "~0.4.1",
+    "grunt-shell": "~0.2.2",
+    "grunt-coffeelint": "0.0.6",
+    "rimraf": "~2.2.2"
+  },
+  "gitHead": "c90f096dfc8f589ecb8186cadfbfcf97dc5f5cc6",
+  "_id": "property-accessors@1.1.3",
+  "_shasum": "1dde84024631865909ef30703365680c5f928b15",
+  "_from": "property-accessors@>=1.1.0 <2.0.0",
+  "_npmVersion": "1.4.28",
+  "_npmUser": {
+    "name": "kevinsawicki",
+    "email": "kevinsawicki@gmail.com"
+  },
+  "maintainers": [
+    {
+      "name": "nathansobo",
+      "email": "nathansobo@gmail.com"
+    },
+    {
+      "name": "kevinsawicki",
+      "email": "kevinsawicki@gmail.com"
+    },
+    {
+      "name": "benogle",
+      "email": "ogle.ben@gmail.com"
+    }
+  ],
+  "dist": {
+    "shasum": "1dde84024631865909ef30703365680c5f928b15",
+    "tarball": "http://registry.npmjs.org/property-accessors/-/property-accessors-1.1.3.tgz"
+  },
+  "directories": {},
+  "_resolved": "https://registry.npmjs.org/property-accessors/-/property-accessors-1.1.3.tgz",
+  "readme": "ERROR: No README data found!"
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/package.json b/atom/packages/vim-mode/node_modules/grim/node_modules/emissary/package.json
new file mode 100644 (file)
index 0000000..53b6b8a
--- /dev/null
@@ -0,0 +1,78 @@
+{
+  "name": "emissary",
+  "version": "1.3.3",
+  "description": "Utility mixins for subscribing to and emitting events.",
+  "main": "lib/emissary.js",
+  "scripts": {
+    "test": "grunt test",
+    "prepublish": "grunt clean lint coffee"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+ssh://git@github.com/atom/emissary.git"
+  },
+  "bugs": {
+    "url": "https://github.com/atom/emissary/issues"
+  },
+  "homepage": "http://atom.github.io/emissary",
+  "keywords": [
+    "event-emitter",
+    "events",
+    "subscribe",
+    "subscriber"
+  ],
+  "author": {
+    "name": "Nathan Sobo"
+  },
+  "licenses": [
+    {
+      "type": "MIT",
+      "url": "http://github.com/atom/emissary/raw/master/LICENSE.md"
+    }
+  ],
+  "dependencies": {
+    "underscore-plus": "1.x",
+    "mixto": "1.x",
+    "property-accessors": "^1.1",
+    "es6-weak-map": "^0.1.2"
+  },
+  "devDependencies": {
+    "jasmine-focused": "1.x",
+    "grunt-contrib-coffee": "~0.7.0",
+    "grunt-cli": "~0.1.8",
+    "grunt": "~0.4.1",
+    "grunt-shell": "~0.2.2",
+    "grunt-coffeelint": "0.0.6",
+    "rimraf": "~2.2.2"
+  },
+  "gitHead": "13170d3e1f8b1cd4396d6dceb3c3bccf0887dae2",
+  "_id": "emissary@1.3.3",
+  "_shasum": "a618d92d682b232d31111dc3625a5df661799606",
+  "_from": "emissary@>=1.2.0 <2.0.0",
+  "_npmVersion": "1.4.28",
+  "_npmUser": {
+    "name": "kevinsawicki",
+    "email": "kevinsawicki@gmail.com"
+  },
+  "maintainers": [
+    {
+      "name": "nathansobo",
+      "email": "nathansobo@gmail.com"
+    },
+    {
+      "name": "kevinsawicki",
+      "email": "kevinsawicki@gmail.com"
+    },
+    {
+      "name": "benogle",
+      "email": "ogle.ben@gmail.com"
+    }
+  ],
+  "dist": {
+    "shasum": "a618d92d682b232d31111dc3625a5df661799606",
+    "tarball": "http://registry.npmjs.org/emissary/-/emissary-1.3.3.tgz"
+  },
+  "directories": {},
+  "_resolved": "https://registry.npmjs.org/emissary/-/emissary-1.3.3.tgz",
+  "readme": "ERROR: No README data found!"
+}
diff --git a/atom/packages/vim-mode/node_modules/grim/package.json b/atom/packages/vim-mode/node_modules/grim/package.json
new file mode 100644 (file)
index 0000000..2e7bd07
--- /dev/null
@@ -0,0 +1,73 @@
+{
+  "name": "grim",
+  "version": "1.4.2",
+  "description": "Log usage of deprecated methods",
+  "main": "./lib/grim",
+  "scripts": {
+    "prepublish": "grunt clean lint coffee",
+    "test": "grunt test"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/atom/grim.git"
+  },
+  "bugs": {
+    "url": "https://github.com/atom/grim/issues"
+  },
+  "licenses": [
+    {
+      "type": "MIT",
+      "url": "http://github.com/atom/grim/raw/master/LICENSE.md"
+    }
+  ],
+  "dependencies": {
+    "emissary": "^1.2.0"
+  },
+  "devDependencies": {
+    "coffee-script": "^1.7.0",
+    "jasmine-focused": "^1.0.4",
+    "grunt-contrib-coffee": "^0.9.0",
+    "grunt-cli": "^0.1.8",
+    "grunt": "^0.4.1",
+    "grunt-shell": "^0.2.2",
+    "grunt-coffeelint": "^0.0.6",
+    "rimraf": "^2.2.2",
+    "coffee-cache": "^0.2.0",
+    "temp": "^0.6.0"
+  },
+  "gitHead": "82c45ef794ce93e4455c29365441c62bf94b90a8",
+  "homepage": "https://github.com/atom/grim#readme",
+  "_id": "grim@1.4.2",
+  "_shasum": "b33abee33ec351bab8695818d511a049ca62ef04",
+  "_from": "grim@>=1.4.1 <2.0.0",
+  "_npmVersion": "2.11.3",
+  "_nodeVersion": "0.12.7",
+  "_npmUser": {
+    "name": "nathansobo",
+    "email": "nathan@github.com"
+  },
+  "maintainers": [
+    {
+      "name": "probablycorey",
+      "email": "probablycorey@gmail.com"
+    },
+    {
+      "name": "benogle",
+      "email": "ogle.ben@gmail.com"
+    },
+    {
+      "name": "kevinsawicki",
+      "email": "kevinsawicki@gmail.com"
+    },
+    {
+      "name": "nathansobo",
+      "email": "nathan@github.com"
+    }
+  ],
+  "dist": {
+    "shasum": "b33abee33ec351bab8695818d511a049ca62ef04",
+    "tarball": "http://registry.npmjs.org/grim/-/grim-1.4.2.tgz"
+  },
+  "directories": {},
+  "_resolved": "https://registry.npmjs.org/grim/-/grim-1.4.2.tgz"
+}
index fb456553cacc2caf8a9442017fb57d32cc718db2..505b2f4277a263733d9a333b74565f8b8ad635e4 100644 (file)
@@ -62,5 +62,6 @@
   ],
   "directories": {},
   "_shasum": "8b38b10cacdef63337b8b24e4ff86d45aea529a8",
   ],
   "directories": {},
   "_shasum": "8b38b10cacdef63337b8b24e4ff86d45aea529a8",
-  "_resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz"
+  "_resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
index b52af2d647b55b6d1a011b2fb23314009e721a1b..98add9f5351c00816ceaed53d299bf3abcf1372d 100644 (file)
@@ -15,7 +15,7 @@
   },
   "repository": {
     "type": "git",
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/underscore-plus.git"
+    "url": "git+https://github.com/atom/underscore-plus.git"
   },
   "bugs": {
     "url": "https://github.com/atom/underscore-plus/issues"
   },
   "bugs": {
     "url": "https://github.com/atom/underscore-plus/issues"
@@ -74,5 +74,6 @@
     "tarball": "http://registry.npmjs.org/underscore-plus/-/underscore-plus-1.6.6.tgz"
   },
   "directories": {},
     "tarball": "http://registry.npmjs.org/underscore-plus/-/underscore-plus-1.6.6.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/underscore-plus/-/underscore-plus-1.6.6.tgz"
+  "_resolved": "https://registry.npmjs.org/underscore-plus/-/underscore-plus-1.6.6.tgz",
+  "readme": "ERROR: No README data found!"
 }
 }
index 68430240882ee46e4e412af036d2e450bd4a639d..731ee6a43af2a83a9a7c3e316d2caef9d018764d 100644 (file)
@@ -1,20 +1,21 @@
 {
   "name": "vim-mode",
   "main": "./lib/vim-mode",
 {
   "name": "vim-mode",
   "main": "./lib/vim-mode",
-  "version": "0.54.0",
+  "version": "0.60.0",
   "description": "Add vim modal control",
   "license": "MIT",
   "private": true,
   "repository": {
     "type": "git",
   "description": "Add vim modal control",
   "license": "MIT",
   "private": true,
   "repository": {
     "type": "git",
-    "url": "https://github.com/atom/vim-mode"
+    "url": "git+https://github.com/atom/vim-mode.git"
   },
   "engines": {
     "atom": ">0.151.0"
   },
   "dependencies": {
   },
   "engines": {
     "atom": ">0.151.0"
   },
   "dependencies": {
-    "underscore-plus": "1.x",
-    "event-kit": "^0.7.2"
+    "event-kit": "^0.7.2",
+    "grim": "^1.4.1",
+    "underscore-plus": "1.x"
   },
   "consumedServices": {
     "status-bar": {
   },
   "consumedServices": {
     "status-bar": {
   "devDependencies": {
     "coffeelint": "^1.10.1"
   },
   "devDependencies": {
     "coffeelint": "^1.10.1"
   },
-  "readme": "## Vim Mode package [![Build Status](https://travis-ci.org/atom/vim-mode.svg?branch=master)](https://travis-ci.org/atom/vim-mode)\n\nProvides vim modal control for Atom, ideally blending the best of vim\nand Atom.\n\n### Installing\n\nUse the Atom package manager, which can be found in the Settings view or\nrun `apm install vim-mode` from the command line.\n\n### Current Status\n\nSizable portions of Vim's command mode work as you'd expect, including\nmany complex combinations. Even so, this package is far from finished (Vim\nwasn't built in a day).\n\nIf you want the vim ex line (for `:w`, `:s`, etc.), you can try [ex-mode](https://atom.io/packages/ex-mode)\nwhich works in conjuction with this plugin.\n\nCurrently, vim-mode requires soft line wraps to be disabled, and has some issues\nwith international keyboard layouts.\n\nIf there's a feature of Vim you're missing, it might just be that you use it\nmore often than other developers. Adding a feature can be quick and easy. Check\nout the [closed pull requests](https://github.com/atom/vim-mode/pulls?direction=desc&page=1&sort=created&state=closed)\nto see examples of community contributions. We're looking forward to yours, too.\n\n### Documentation\n\n* [Overview](https://github.com/atom/vim-mode/blob/master/docs/overview.md)\n* [Motions](https://github.com/atom/vim-mode/blob/master/docs/motions.md)\n* [Operators](https://github.com/atom/vim-mode/blob/master/docs/operators.md)\n* [Windows](https://github.com/atom/vim-mode/blob/master/docs/windows.md)\n* [Scrolling](https://github.com/atom/vim-mode/blob/master/docs/scrolling.md)\n\n### Development\n\n* Create a branch with your feature/fix.\n* Add a spec (take inspiration from the ones that are already there).\n* If you're adding a command be sure to update the appropriate file in\n  `docs/`\n* Create a PR.\n\nWhen in doubt, open a PR earlier rather than later so that you can receive\nfeedback from the community. We want to get your fix or feature included as much\nas you do.\n\nSee [the contribution guide](https://github.com/atom/vim-mode/blob/master/CONTRIBUTING.md).\n",
+  "readme": "## Vim Mode package [![Build Status](https://travis-ci.org/atom/vim-mode.svg?branch=master)](https://travis-ci.org/atom/vim-mode)\n\nProvides vim modal control for Atom, ideally blending the best of vim\nand Atom.\n\n### Installing\n\nUse the Atom package manager, which can be found in the Settings view or\nrun `apm install vim-mode` from the command line.\n\n### Current Status\n\nSizable portions of Vim's normal mode work as you'd expect, including\nmany complex combinations. Even so, this package is far from finished (Vim\nwasn't built in a day).\n\nIf you want the vim ex line (for `:w`, `:s`, etc.), you can try [ex-mode](https://atom.io/packages/ex-mode)\nwhich works in conjuction with this plugin.\n\nCurrently, vim-mode has some issues with international keyboard layouts.\n\nIf there's a feature of Vim you're missing, it might just be that you use it\nmore often than other developers. Adding a feature can be quick and easy. Check\nout the [closed pull requests](https://github.com/atom/vim-mode/pulls?direction=desc&page=1&sort=created&state=closed)\nto see examples of community contributions. We're looking forward to yours, too.\n\n### Documentation\n\n* [Overview](https://github.com/atom/vim-mode/blob/master/docs/overview.md)\n* [Motions and Text Objects](https://github.com/atom/vim-mode/blob/master/docs/motions.md)\n* [Operators](https://github.com/atom/vim-mode/blob/master/docs/operators.md)\n* [Windows](https://github.com/atom/vim-mode/blob/master/docs/windows.md)\n* [Scrolling](https://github.com/atom/vim-mode/blob/master/docs/scrolling.md)\n\n### Development\n\n* Create a branch with your feature/fix.\n* Add a spec (take inspiration from the ones that are already there).\n* If you're adding a command be sure to update the appropriate file in\n  `docs/`\n* Create a PR.\n\nWhen in doubt, open a PR earlier rather than later so that you can receive\nfeedback from the community. We want to get your fix or feature included as much\nas you do.\n\nSee [the contribution guide](https://github.com/atom/vim-mode/blob/master/CONTRIBUTING.md).\n",
   "readmeFilename": "README.md",
   "bugs": {
     "url": "https://github.com/atom/vim-mode/issues"
   },
   "readmeFilename": "README.md",
   "bugs": {
     "url": "https://github.com/atom/vim-mode/issues"
   },
-  "homepage": "https://github.com/atom/vim-mode",
-  "_id": "vim-mode@0.54.0",
-  "_shasum": "619db8e3fab094d98ed3082c1ae8fe38c3659157",
-  "_resolved": "file:../d-11562-87009-1vvfmad/package.tgz",
-  "_from": "../d-11562-87009-1vvfmad/package.tgz",
+  "homepage": "https://github.com/atom/vim-mode#readme",
+  "_id": "vim-mode@0.60.0",
+  "_shasum": "c8a64fe60b40b71148f78df595cd813faef8d1f4",
+  "_resolved": "file:../d-115828-94481-cfhog7/package.tgz",
+  "_from": "../d-115828-94481-cfhog7/package.tgz",
   "_atomModuleCache": {
     "version": 1,
     "dependencies": [
   "_atomModuleCache": {
     "version": 1,
     "dependencies": [
         "version": "1.1.3",
         "path": "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/property-accessors/lib/property-accessors.js"
       },
         "version": "1.1.3",
         "path": "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/property-accessors/lib/property-accessors.js"
       },
+      {
+        "name": "grim",
+        "version": "1.4.2",
+        "path": "node_modules/grim/lib/grim.js"
+      },
+      {
+        "name": "emissary",
+        "version": "1.3.3",
+        "path": "node_modules/grim/node_modules/emissary/lib/emissary.js"
+      },
+      {
+        "name": "es6-weak-map",
+        "version": "0.1.4",
+        "path": "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/index.js"
+      },
+      {
+        "name": "d",
+        "version": "0.1.1",
+        "path": "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/index.js"
+      },
+      {
+        "name": "es5-ext",
+        "version": "0.10.7",
+        "path": "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/index.js"
+      },
+      {
+        "name": "es6-iterator",
+        "version": "0.1.3",
+        "path": "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/index.js"
+      },
+      {
+        "name": "es6-symbol",
+        "version": "2.0.1",
+        "path": "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/index.js"
+      },
+      {
+        "name": "mixto",
+        "version": "1.0.0",
+        "path": "node_modules/grim/node_modules/emissary/node_modules/mixto/lib/mixin.js"
+      },
+      {
+        "name": "property-accessors",
+        "version": "1.1.3",
+        "path": "node_modules/grim/node_modules/emissary/node_modules/property-accessors/lib/property-accessors.js"
+      },
       {
         "name": "underscore-plus",
         "version": "1.6.6",
       {
         "name": "underscore-plus",
         "version": "1.6.6",
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/package.json",
         "node_modules/event-kit/node_modules/grim/package.json",
         "node_modules/event-kit/package.json",
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/package.json",
         "node_modules/event-kit/node_modules/grim/package.json",
         "node_modules/event-kit/package.json",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/package.json",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/package.json",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/package.json",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/package.json",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/package.json",
+        "node_modules/grim/node_modules/emissary/node_modules/mixto/package.json",
+        "node_modules/grim/node_modules/emissary/node_modules/property-accessors/package.json",
+        "node_modules/grim/node_modules/emissary/package.json",
+        "node_modules/grim/package.json",
         "node_modules/underscore-plus/node_modules/underscore/package.json",
         "node_modules/underscore-plus/package.json",
         "package.json"
       ],
       ".coffee": [
         "lib/global-vim-state.coffee",
         "node_modules/underscore-plus/node_modules/underscore/package.json",
         "node_modules/underscore-plus/package.json",
         "package.json"
       ],
       ".coffee": [
         "lib/global-vim-state.coffee",
+        "lib/insert-mode.coffee",
         "lib/motions/find-motion.coffee",
         "lib/motions/general-motions.coffee",
         "lib/motions/index.coffee",
         "lib/motions/find-motion.coffee",
         "lib/motions/general-motions.coffee",
         "lib/motions/index.coffee",
         "lib/utils.coffee",
         "lib/view-models/search-view-model.coffee",
         "lib/view-models/view-model.coffee",
         "lib/utils.coffee",
         "lib/view-models/search-view-model.coffee",
         "lib/view-models/view-model.coffee",
-        "lib/view-models/vim-command-mode-input-element.coffee",
+        "lib/view-models/vim-normal-mode-input-element.coffee",
         "lib/vim-mode.coffee",
         "lib/vim-state.coffee"
       ],
         "lib/vim-mode.coffee",
         "lib/vim-state.coffee"
       ],
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/valid-weak-map.js",
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/mixto/lib/mixin.js",
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/property-accessors/lib/property-accessors.js",
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/valid-weak-map.js",
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/mixto/lib/mixin.js",
         "node_modules/event-kit/node_modules/grim/node_modules/emissary/node_modules/property-accessors/lib/property-accessors.js",
+        "node_modules/grim/lib/deprecation.js",
+        "node_modules/grim/lib/grim.js",
+        "node_modules/grim/node_modules/emissary/lib/behavior.js",
+        "node_modules/grim/node_modules/emissary/lib/emissary.js",
+        "node_modules/grim/node_modules/emissary/lib/emitter.js",
+        "node_modules/grim/node_modules/emissary/lib/helpers.js",
+        "node_modules/grim/node_modules/emissary/lib/signal.js",
+        "node_modules/grim/node_modules/emissary/lib/subscriber.js",
+        "node_modules/grim/node_modules/emissary/lib/subscription.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/is-native-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/is-weak-map.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/auto-bind.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/lazy.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/_compare-by-length.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/binary-search.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/clear.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/compact.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/contains.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/diff.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/e-index-of.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/e-last-index-of.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/exclusion.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/first-index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/first.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/flatten.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/for-each-right.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/group.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/indexes-of.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/intersection.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/is-copy.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/is-uniq.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/last-index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/last.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/remove.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/separate.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/some-right.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/uniq.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/_is-extensible.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/_sub-array-dummy-safe.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/_sub-array-dummy.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/generate.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/is-plain-array.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/to-array.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/valid-array.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/boolean/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/boolean/is-boolean.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/copy.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/days-in-month.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/floor-day.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/floor-month.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/floor-year.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/format.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/is-date.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/valid-date.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/#/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/#/throw.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/custom.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/is-error.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/valid-error.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/compose.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/copy.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/curry.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/lock.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/not.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/partial.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/spread.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#/to-string-tokens.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/_define-length.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/constant.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/identity.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/invoke.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/is-arguments.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/is-function.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/noop.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/pluck.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/valid-function.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/global.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/for-each.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/is.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/validate-object.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable/validate.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/_pack-ieee754.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/_unpack-ieee754.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/#/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/#/pad.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/epsilon/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/epsilon/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/epsilon/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-number.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/max-safe-integer/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/max-safe-integer/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/max-safe-integer/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/min-safe-integer/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/min-safe-integer/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/min-safe-integer/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/to-integer.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/to-pos-integer.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/to-uint32.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/_iterate.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/clear.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/compact.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/compare.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/copy-deep.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/copy.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/count.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/create.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/eq.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/every.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/filter.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/first-key.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/flatten.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/for-each.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/get-property-names.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-array-like.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-callable.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-copy-deep.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-copy.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-empty.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-object.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is-plain-object.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/is.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/key-of.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/map-keys.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/map.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/mixin-prototypes.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/mixin.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/normalize-options.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/primitive-set.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/safe-traverse.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/serialize.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/some.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/to-array.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/unserialize.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/valid-callable.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/valid-object.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/valid-value.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-array-like-object.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-array-like.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-stringifiable-value.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/validate-stringifiable.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/is-sticky.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/is-unicode.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/sticky/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/sticky/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/unicode/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/unicode/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/escape.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/is-reg-exp.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/valid-reg-exp.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/at.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/camel-to-hyphen.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/capitalize.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/case-insensitive-compare.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/hyphen-to-camel.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/indent.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/last.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/_data.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/pad.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/plain-replace-all.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/plain-replace.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/format-method.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/is-string.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/random-uniq.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw/shim.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/#/chain.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/array.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/for-of.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/get.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/is-iterable.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/string.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/valid-iterable.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/implement.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/index.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/is-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/is-native-implemented.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/is-symbol.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/polyfill.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/validate-symbol.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/polyfill.js",
+        "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/valid-weak-map.js",
+        "node_modules/grim/node_modules/emissary/node_modules/mixto/lib/mixin.js",
+        "node_modules/grim/node_modules/emissary/node_modules/property-accessors/lib/property-accessors.js",
         "node_modules/underscore-plus/lib/underscore-plus.js",
         "node_modules/underscore-plus/node_modules/underscore/underscore-min.js",
         "node_modules/underscore-plus/node_modules/underscore/underscore.js"
         "node_modules/underscore-plus/lib/underscore-plus.js",
         "node_modules/underscore-plus/node_modules/underscore/underscore-min.js",
         "node_modules/underscore-plus/node_modules/underscore/underscore.js"
           "spec"
         ],
         "dependencies": {
           "spec"
         ],
         "dependencies": {
-          "underscore-plus": "1.x",
-          "event-kit": "^0.7.2"
+          "event-kit": "^0.7.2",
+          "grim": "^1.4.1",
+          "underscore-plus": "1.x"
         }
       },
       {
         }
       },
       {
           "es6-weak-map": "^0.1.2"
         }
       },
           "es6-weak-map": "^0.1.2"
         }
       },
+      {
+        "paths": [
+          "node_modules/grim/lib",
+          "node_modules/grim"
+        ],
+        "dependencies": {
+          "emissary": "^1.2.0"
+        }
+      },
+      {
+        "paths": [
+          "node_modules/grim/node_modules/emissary/lib",
+          "node_modules/grim/node_modules/emissary"
+        ],
+        "dependencies": {
+          "underscore-plus": "1.x",
+          "mixto": "1.x",
+          "property-accessors": "^1.1",
+          "es6-weak-map": "^0.1.2"
+        }
+      },
+      {
+        "paths": [
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/test"
+        ],
+        "dependencies": {
+          "d": "~0.1.1",
+          "es5-ext": "~0.10.6",
+          "es6-iterator": "~0.1.3",
+          "es6-symbol": "~2.0.1"
+        }
+      },
+      {
+        "paths": [
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/d/test"
+        ],
+        "dependencies": {
+          "es5-ext": "~0.10.2"
+        }
+      },
+      {
+        "paths": [
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/@@iterator",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/concat",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/copy-within",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/entries",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/fill",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/filter",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/find-index",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/keys",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/map",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/slice",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/splice",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/#/values",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/from",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/array/of",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/boolean",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/date",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/error",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/function",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/iterable",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/acosh",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/asinh",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/atanh",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cbrt",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/clz32",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/cosh",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/expm1",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/fround",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/hypot",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/imul",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log10",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log1p",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/log2",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sign",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/sinh",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/tanh",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/math/trunc",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/epsilon",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-finite",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-integer",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-nan",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/is-safe-integer",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/max-safe-integer",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/number/min-safe-integer",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/assign",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/keys",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/object/set-prototype-of",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/match",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/replace",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/search",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/split",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/sticky",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp/#/unicode",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/reg-exp",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/@@iterator",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/code-point-at",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/contains",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/ends-with",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/normalize",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/repeat",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/#/starts-with",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/from-code-point",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/string/raw",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/@@iterator",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/concat",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/copy-within",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/entries",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/fill",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/filter",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/find-index",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/keys",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/map",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/slice",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/splice",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/#/values",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/from",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/array/of",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/boolean",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/date",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/error/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/error",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/function",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/iterable",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/acosh",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/asinh",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/atanh",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cbrt",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/clz32",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/cosh",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/expm1",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/fround",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/hypot",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/imul",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log10",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log1p",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/log2",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sign",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/sinh",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/tanh",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/math/trunc",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/epsilon",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-finite",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-integer",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-nan",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/is-safe-integer",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/max-safe-integer",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/number/min-safe-integer",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/match",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/replace",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/search",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/split",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/sticky",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp/#/unicode",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/reg-exp",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/@@iterator",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/code-point-at",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/contains",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/ends-with",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/normalize",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/repeat",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/#/starts-with",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/from-code-point",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es5-ext/test/string/raw"
+        ],
+        "dependencies": {
+          "es6-iterator": "~0.1.3",
+          "es6-symbol": "~2.0.1"
+        }
+      },
+      {
+        "paths": [
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test/#",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-iterator/test"
+        ],
+        "dependencies": {
+          "d": "~0.1.1",
+          "es5-ext": "~0.10.5",
+          "es6-symbol": "~2.0.1"
+        }
+      },
+      {
+        "paths": [
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol",
+          "node_modules/grim/node_modules/emissary/node_modules/es6-weak-map/node_modules/es6-symbol/test"
+        ],
+        "dependencies": {
+          "d": "~0.1.1",
+          "es5-ext": "~0.10.5"
+        }
+      },
+      {
+        "paths": [
+          "node_modules/grim/node_modules/emissary/node_modules/property-accessors/lib",
+          "node_modules/grim/node_modules/emissary/node_modules/property-accessors"
+        ],
+        "dependencies": {
+          "mixto": "1.x",
+          "es6-weak-map": "^0.1.2"
+        }
+      },
       {
         "paths": [
           "node_modules/underscore-plus/lib",
       {
         "paths": [
           "node_modules/underscore-plus/lib",
diff --git a/atom/packages/vim-mode/spec/insert-mode-spec.coffee b/atom/packages/vim-mode/spec/insert-mode-spec.coffee
new file mode 100644 (file)
index 0000000..061cb50
--- /dev/null
@@ -0,0 +1,73 @@
+helpers = require './spec-helper'
+
+describe "Insert mode commands", ->
+  [editor, editorElement, vimState] = []
+
+  beforeEach ->
+    vimMode = atom.packages.loadPackage('vim-mode')
+    vimMode.activateResources()
+
+    helpers.getEditorElement (element) ->
+      editorElement = element
+      editor = editorElement.getModel()
+      vimState = editorElement.vimState
+      vimState.activateNormalMode()
+      vimState.resetNormalMode()
+
+  keydown = (key, options={}) ->
+    options.element ?= editorElement
+    helpers.keydown(key, options)
+
+  describe "Copy from line above/below", ->
+    beforeEach ->
+      editor.setText("12345\n\nabcd\nefghi")
+      editor.setCursorBufferPosition([1, 0])
+      editor.addCursorAtBufferPosition([3, 0])
+      keydown 'i'
+
+    describe "the ctrl-y command", ->
+      it "copies from the line above", ->
+        keydown 'y', ctrl: true
+        expect(editor.getText()).toBe '12345\n1\nabcd\naefghi'
+
+        editor.insertText ' '
+        keydown 'y', ctrl: true
+        expect(editor.getText()).toBe '12345\n1 3\nabcd\na cefghi'
+
+      it "does nothing if there's nothing above the cursor", ->
+        editor.insertText 'fill'
+        keydown 'y', ctrl: true
+        expect(editor.getText()).toBe '12345\nfill5\nabcd\nfillefghi'
+
+        keydown 'y', ctrl: true
+        expect(editor.getText()).toBe '12345\nfill5\nabcd\nfillefghi'
+
+      it "does nothing on the first line", ->
+        editor.setCursorBufferPosition([0, 2])
+        editor.addCursorAtBufferPosition([3, 2])
+        editor.insertText 'a'
+        expect(editor.getText()).toBe '12a345\n\nabcd\nefaghi'
+        keydown 'y', ctrl: true
+        expect(editor.getText()).toBe '12a345\n\nabcd\nefadghi'
+
+    describe "the ctrl-e command", ->
+      beforeEach ->
+        atom.keymaps.add "test",
+          'atom-text-editor.vim-mode.insert-mode':
+            'ctrl-e': 'vim-mode:copy-from-line-below'
+
+      it "copies from the line below", ->
+        keydown 'e', ctrl: true
+        expect(editor.getText()).toBe '12345\na\nabcd\nefghi'
+
+        editor.insertText ' '
+        keydown 'e', ctrl: true
+        expect(editor.getText()).toBe '12345\na c\nabcd\n efghi'
+
+      it "does nothing if there's nothing below the cursor", ->
+        editor.insertText 'foo'
+        keydown 'e', ctrl: true
+        expect(editor.getText()).toBe '12345\nfood\nabcd\nfooefghi'
+
+        keydown 'e', ctrl: true
+        expect(editor.getText()).toBe '12345\nfood\nabcd\nfooefghi'
index f7114eddb742822afa23d077ea8c0762cc140293..9c205ec9b8a71a5da5dd6b95f9ba09e03d4c3024 100644 (file)
@@ -11,20 +11,21 @@ describe "Motions", ->
       editorElement = element
       editor = editorElement.getModel()
       vimState = editorElement.vimState
       editorElement = element
       editor = editorElement.getModel()
       vimState = editorElement.vimState
-      vimState.activateCommandMode()
-      vimState.resetCommandMode()
+      vimState.activateNormalMode()
+      vimState.resetNormalMode()
 
   keydown = (key, options={}) ->
     options.element ?= editorElement
     helpers.keydown(key, options)
 
 
   keydown = (key, options={}) ->
     options.element ?= editorElement
     helpers.keydown(key, options)
 
-  commandModeInputKeydown = (key, opts = {}) ->
-    editor.commandModeInputView.editorElement.getModel().setText(key)
+  normalModeInputKeydown = (key, opts = {}) ->
+    theEditor = opts.editor or editor
+    theEditor.normalModeInputView.editorElement.getModel().setText(key)
 
 
-  submitCommandModeInputText = (text) ->
-    commandEditor = editor.commandModeInputView.editorElement
-    commandEditor.getModel().setText(text)
-    atom.commands.dispatch(commandEditor, "core:confirm")
+  submitNormalModeInputText = (text) ->
+    inputEditor = editor.normalModeInputView.editorElement
+    inputEditor.getModel().setText(text)
+    atom.commands.dispatch(inputEditor, "core:confirm")
 
   describe "simple motions", ->
     beforeEach ->
 
   describe "simple motions", ->
     beforeEach ->
@@ -144,30 +145,21 @@ describe "Motions", ->
         keydown('w')
         expect(editor.getCursorScreenPosition()).toEqual [2, 0]
 
         keydown('w')
         expect(editor.getCursorScreenPosition()).toEqual [2, 0]
 
-        # FIXME: The definition of Cursor#getEndOfCurrentWordBufferPosition,
-        # means that the end of the word can't be the current cursor
-        # position (even though it is when your cursor is on a new line).
-        #
-        # Therefore it picks the end of the next word here (which is [3,3])
-        # to start looking for the next word, which is also the end of the
-        # buffer so the cursor never advances.
-        #
-        # See atom/vim-mode#3
         keydown('w')
         expect(editor.getCursorScreenPosition()).toEqual [3, 0]
 
         keydown('w')
         keydown('w')
         expect(editor.getCursorScreenPosition()).toEqual [3, 0]
 
         keydown('w')
-        expect(editor.getCursorScreenPosition()).toEqual [3, 3]
+        expect(editor.getCursorScreenPosition()).toEqual [3, 2]
 
 
-        # After cursor gets to the EOF, it should stay there.
+        # When the cursor gets to the EOF, it should stay there.
         keydown('w')
         keydown('w')
-        expect(editor.getCursorScreenPosition()).toEqual [3, 3]
+        expect(editor.getCursorScreenPosition()).toEqual [3, 2]
 
       it "moves the cursor to the end of the word if last word in file", ->
         editor.setText("abc")
         editor.setCursorScreenPosition([0, 0])
         keydown('w')
 
       it "moves the cursor to the end of the word if last word in file", ->
         editor.setText("abc")
         editor.setCursorScreenPosition([0, 0])
         keydown('w')
-        expect(editor.getCursorScreenPosition()).toEqual([0, 3])
+        expect(editor.getCursorScreenPosition()).toEqual([0, 2])
 
     describe "as a selection", ->
       describe "within a word", ->
 
     describe "as a selection", ->
       describe "within a word", ->
@@ -460,10 +452,10 @@ describe "Motions", ->
 
     describe "as a selection", ->
       it "selects to the beginning of the whole word", ->
 
     describe "as a selection", ->
       it "selects to the beginning of the whole word", ->
-        editor.setCursorScreenPosition([1, 10])
+        editor.setCursorScreenPosition([1, 9])
         keydown('y')
         keydown('B', shift: true)
         keydown('y')
         keydown('B', shift: true)
-        expect(vimState.getRegister('"').text).toBe 'xyz-123'
+        expect(vimState.getRegister('"').text).toBe 'xyz-12'
 
       it "doesn't go past the beginning of the file", ->
         editor.setCursorScreenPosition([0, 0])
 
       it "doesn't go past the beginning of the file", ->
         editor.setCursorScreenPosition([0, 0])
@@ -850,7 +842,7 @@ describe "Motions", ->
       editor.setCursorScreenPosition([0, 2])
 
     describe "as a motion", ->
       editor.setCursorScreenPosition([0, 2])
 
     describe "as a motion", ->
-      describe "in command mode", ->
+      describe "in normal mode", ->
         beforeEach ->
           keydown('g')
           keydown('g')
         beforeEach ->
           keydown('g')
           keydown('g')
@@ -885,7 +877,7 @@ describe "Motions", ->
           expect(editor.getCursorScreenPosition()).toEqual [0, 1]
 
     describe "as a repeated motion", ->
           expect(editor.getCursorScreenPosition()).toEqual [0, 1]
 
     describe "as a repeated motion", ->
-      describe "in command mode", ->
+      describe "in normal mode", ->
         beforeEach ->
           keydown('2')
           keydown('g')
         beforeEach ->
           keydown('2')
           keydown('g')
@@ -965,7 +957,7 @@ describe "Motions", ->
       beforeEach -> keydown('G', shift: true)
 
       it "moves the cursor to the last line after whitespace", ->
       beforeEach -> keydown('G', shift: true)
 
       it "moves the cursor to the last line after whitespace", ->
-        expect(editor.getCursorScreenPosition()).toEqual [3, 1]
+        expect(editor.getCursorScreenPosition()).toEqual [3, 0]
 
     describe "as a repeated motion", ->
       beforeEach ->
 
     describe "as a repeated motion", ->
       beforeEach ->
@@ -997,61 +989,77 @@ describe "Motions", ->
       editor.setText("abc\ndef\nabc\ndef\n")
       editor.setCursorBufferPosition([0, 0])
 
       editor.setText("abc\ndef\nabc\ndef\n")
       editor.setCursorBufferPosition([0, 0])
 
+      # clear search history
+      vimState.globalVimState.searchHistory = []
+      vimState.globalVimState.currentSearch = {}
+
     describe "as a motion", ->
     describe "as a motion", ->
+      it "beeps when repeating nonexistent last search", ->
+        keydown '/'
+        submitNormalModeInputText ''
+        expect(editor.getCursorBufferPosition()).toEqual [0, 0]
+        expect(atom.beep).toHaveBeenCalled()
+
       it "moves the cursor to the specified search pattern", ->
         keydown('/')
 
       it "moves the cursor to the specified search pattern", ->
         keydown('/')
 
-        submitCommandModeInputText 'def'
+        submitNormalModeInputText 'def'
 
         expect(editor.getCursorBufferPosition()).toEqual [1, 0]
         expect(pane.activate).toHaveBeenCalled()
 
         expect(editor.getCursorBufferPosition()).toEqual [1, 0]
         expect(pane.activate).toHaveBeenCalled()
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it "loops back around", ->
         editor.setCursorBufferPosition([3, 0])
         keydown('/')
 
       it "loops back around", ->
         editor.setCursorBufferPosition([3, 0])
         keydown('/')
-        submitCommandModeInputText 'def'
+        submitNormalModeInputText 'def'
 
         expect(editor.getCursorBufferPosition()).toEqual [1, 0]
 
         expect(editor.getCursorBufferPosition()).toEqual [1, 0]
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it "uses a valid regex as a regex", ->
         keydown('/')
         # Cycle through the 'abc' on the first line with a character pattern
 
       it "uses a valid regex as a regex", ->
         keydown('/')
         # Cycle through the 'abc' on the first line with a character pattern
-        submitCommandModeInputText '[abc]'
+        submitNormalModeInputText '[abc]'
         expect(editor.getCursorBufferPosition()).toEqual [0, 1]
         keydown('n')
         expect(editor.getCursorBufferPosition()).toEqual [0, 2]
         expect(editor.getCursorBufferPosition()).toEqual [0, 1]
         keydown('n')
         expect(editor.getCursorBufferPosition()).toEqual [0, 2]
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it "uses an invalid regex as a literal string", ->
         # Go straight to the literal [abc
         editor.setText("abc\n[abc]\n")
         keydown('/')
 
       it "uses an invalid regex as a literal string", ->
         # Go straight to the literal [abc
         editor.setText("abc\n[abc]\n")
         keydown('/')
-        submitCommandModeInputText '[abc'
+        submitNormalModeInputText '[abc'
         expect(editor.getCursorBufferPosition()).toEqual [1, 0]
         keydown('n')
         expect(editor.getCursorBufferPosition()).toEqual [1, 0]
         expect(editor.getCursorBufferPosition()).toEqual [1, 0]
         keydown('n')
         expect(editor.getCursorBufferPosition()).toEqual [1, 0]
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it "uses ? as a literal string", ->
         editor.setText("abc\n[a?c?\n")
         keydown('/')
 
       it "uses ? as a literal string", ->
         editor.setText("abc\n[a?c?\n")
         keydown('/')
-        submitCommandModeInputText '?'
+        submitNormalModeInputText '?'
         expect(editor.getCursorBufferPosition()).toEqual [1, 2]
         keydown('n')
         expect(editor.getCursorBufferPosition()).toEqual [1, 4]
         expect(editor.getCursorBufferPosition()).toEqual [1, 2]
         keydown('n')
         expect(editor.getCursorBufferPosition()).toEqual [1, 4]
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it 'works with selection in visual mode', ->
         editor.setText('one two three')
         keydown('v')
         keydown('/')
 
       it 'works with selection in visual mode', ->
         editor.setText('one two three')
         keydown('v')
         keydown('/')
-        submitCommandModeInputText 'th'
+        submitNormalModeInputText 'th'
         expect(editor.getCursorBufferPosition()).toEqual [0, 9]
         keydown('d')
         expect(editor.getText()).toBe 'hree'
         expect(editor.getCursorBufferPosition()).toEqual [0, 9]
         keydown('d')
         expect(editor.getText()).toBe 'hree'
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it 'extends selection when repeating search in visual mode', ->
         editor.setText('line1\nline2\nline3')
         keydown('v')
         keydown('/')
 
       it 'extends selection when repeating search in visual mode', ->
         editor.setText('line1\nline2\nline3')
         keydown('v')
         keydown('/')
-        submitCommandModeInputText 'line'
+        submitNormalModeInputText 'line'
         {start, end} = editor.getSelectedBufferRange()
         expect(start.row).toEqual 0
         expect(end.row).toEqual 1
         {start, end} = editor.getSelectedBufferRange()
         expect(start.row).toEqual 0
         expect(end.row).toEqual 1
@@ -1059,6 +1067,7 @@ describe "Motions", ->
         {start, end} = editor.getSelectedBufferRange()
         expect(start.row).toEqual 0
         expect(end.row).toEqual 2
         {start, end} = editor.getSelectedBufferRange()
         expect(start.row).toEqual 0
         expect(end.row).toEqual 2
+        expect(atom.beep).not.toHaveBeenCalled()
 
       describe "case sensitivity", ->
         beforeEach ->
 
       describe "case sensitivity", ->
         beforeEach ->
@@ -1067,60 +1076,76 @@ describe "Motions", ->
           keydown('/')
 
         it "works in case sensitive mode", ->
           keydown('/')
 
         it "works in case sensitive mode", ->
-          submitCommandModeInputText 'ABC'
+          submitNormalModeInputText 'ABC'
           expect(editor.getCursorBufferPosition()).toEqual [2, 0]
           keydown('n')
           expect(editor.getCursorBufferPosition()).toEqual [2, 0]
           expect(editor.getCursorBufferPosition()).toEqual [2, 0]
           keydown('n')
           expect(editor.getCursorBufferPosition()).toEqual [2, 0]
+          expect(atom.beep).not.toHaveBeenCalled()
 
         it "works in case insensitive mode", ->
 
         it "works in case insensitive mode", ->
-          submitCommandModeInputText '\\cAbC'
+          submitNormalModeInputText '\\cAbC'
           expect(editor.getCursorBufferPosition()).toEqual [1, 0]
           keydown('n')
           expect(editor.getCursorBufferPosition()).toEqual [2, 0]
           expect(editor.getCursorBufferPosition()).toEqual [1, 0]
           keydown('n')
           expect(editor.getCursorBufferPosition()).toEqual [2, 0]
+          expect(atom.beep).not.toHaveBeenCalled()
 
         it "works in case insensitive mode wherever \\c is", ->
 
         it "works in case insensitive mode wherever \\c is", ->
-          submitCommandModeInputText 'AbC\\c'
+          submitNormalModeInputText 'AbC\\c'
           expect(editor.getCursorBufferPosition()).toEqual [1, 0]
           keydown('n')
           expect(editor.getCursorBufferPosition()).toEqual [2, 0]
           expect(editor.getCursorBufferPosition()).toEqual [1, 0]
           keydown('n')
           expect(editor.getCursorBufferPosition()).toEqual [2, 0]
+          expect(atom.beep).not.toHaveBeenCalled()
 
         it "uses case insensitive search if useSmartcaseForSearch is true and searching lowercase", ->
           atom.config.set 'vim-mode.useSmartcaseForSearch', true
 
         it "uses case insensitive search if useSmartcaseForSearch is true and searching lowercase", ->
           atom.config.set 'vim-mode.useSmartcaseForSearch', true
-          submitCommandModeInputText 'abc'
+          submitNormalModeInputText 'abc'
           expect(editor.getCursorBufferPosition()).toEqual [1, 0]
           keydown('n')
           expect(editor.getCursorBufferPosition()).toEqual [2, 0]
           expect(editor.getCursorBufferPosition()).toEqual [1, 0]
           keydown('n')
           expect(editor.getCursorBufferPosition()).toEqual [2, 0]
+          expect(atom.beep).not.toHaveBeenCalled()
 
         it "uses case sensitive search if useSmartcaseForSearch is true and searching uppercase", ->
           atom.config.set 'vim-mode.useSmartcaseForSearch', true
 
         it "uses case sensitive search if useSmartcaseForSearch is true and searching uppercase", ->
           atom.config.set 'vim-mode.useSmartcaseForSearch', true
-          submitCommandModeInputText 'ABC'
+          submitNormalModeInputText 'ABC'
           expect(editor.getCursorBufferPosition()).toEqual [2, 0]
           keydown('n')
           expect(editor.getCursorBufferPosition()).toEqual [2, 0]
           expect(editor.getCursorBufferPosition()).toEqual [2, 0]
           keydown('n')
           expect(editor.getCursorBufferPosition()).toEqual [2, 0]
+          expect(atom.beep).not.toHaveBeenCalled()
 
       describe "repeating", ->
         it "does nothing with no search history", ->
 
       describe "repeating", ->
         it "does nothing with no search history", ->
-          # This tests that no exception is raised
+          editor.setCursorBufferPosition([0, 0])
+          keydown('n')
+          expect(editor.getCursorBufferPosition()).toEqual [0, 0]
+          expect(atom.beep).toHaveBeenCalled()
+
+          editor.setCursorBufferPosition([1, 1])
           keydown('n')
           keydown('n')
+          expect(editor.getCursorBufferPosition()).toEqual [1, 1]
+          expect(atom.beep.callCount).toBe 2
 
 
+      describe "repeating with search history", ->
         beforeEach ->
           keydown('/')
         beforeEach ->
           keydown('/')
-          submitCommandModeInputText 'def'
+          submitNormalModeInputText 'def'
 
         it "repeats previous search with /<enter>", ->
           keydown('/')
 
         it "repeats previous search with /<enter>", ->
           keydown('/')
-          submitCommandModeInputText('')
+          submitNormalModeInputText('')
           expect(editor.getCursorBufferPosition()).toEqual [3, 0]
           expect(editor.getCursorBufferPosition()).toEqual [3, 0]
+          expect(atom.beep).not.toHaveBeenCalled()
 
         it "repeats previous search with //", ->
           keydown('/')
 
         it "repeats previous search with //", ->
           keydown('/')
-          submitCommandModeInputText('/')
+          submitNormalModeInputText('/')
           expect(editor.getCursorBufferPosition()).toEqual [3, 0]
           expect(editor.getCursorBufferPosition()).toEqual [3, 0]
+          expect(atom.beep).not.toHaveBeenCalled()
 
         describe "the n keybinding", ->
           it "repeats the last search", ->
             keydown('n')
             expect(editor.getCursorBufferPosition()).toEqual [3, 0]
 
         describe "the n keybinding", ->
           it "repeats the last search", ->
             keydown('n')
             expect(editor.getCursorBufferPosition()).toEqual [3, 0]
+            expect(atom.beep).not.toHaveBeenCalled()
 
         describe "the N keybinding", ->
           it "repeats the last search backwards", ->
 
         describe "the N keybinding", ->
           it "repeats the last search backwards", ->
@@ -1129,98 +1154,109 @@ describe "Motions", ->
             expect(editor.getCursorBufferPosition()).toEqual [3, 0]
             keydown('N', shift: true)
             expect(editor.getCursorBufferPosition()).toEqual [1, 0]
             expect(editor.getCursorBufferPosition()).toEqual [3, 0]
             keydown('N', shift: true)
             expect(editor.getCursorBufferPosition()).toEqual [1, 0]
+            expect(atom.beep).not.toHaveBeenCalled()
 
       describe "composing", ->
         it "composes with operators", ->
           keydown('d')
           keydown('/')
 
       describe "composing", ->
         it "composes with operators", ->
           keydown('d')
           keydown('/')
-          submitCommandModeInputText('def')
+          submitNormalModeInputText('def')
           expect(editor.getText()).toEqual "def\nabc\ndef\n"
           expect(editor.getText()).toEqual "def\nabc\ndef\n"
+          expect(atom.beep).not.toHaveBeenCalled()
 
         it "repeats correctly with operators", ->
           keydown('d')
           keydown('/')
 
         it "repeats correctly with operators", ->
           keydown('d')
           keydown('/')
-          submitCommandModeInputText('def')
+          submitNormalModeInputText('def')
 
           keydown('.')
           expect(editor.getText()).toEqual "def\n"
 
           keydown('.')
           expect(editor.getText()).toEqual "def\n"
+          expect(atom.beep).not.toHaveBeenCalled()
 
     describe "when reversed as ?", ->
       it "moves the cursor backwards to the specified search pattern", ->
         keydown('?')
 
     describe "when reversed as ?", ->
       it "moves the cursor backwards to the specified search pattern", ->
         keydown('?')
-        submitCommandModeInputText('def')
+        submitNormalModeInputText('def')
         expect(editor.getCursorBufferPosition()).toEqual [3, 0]
         expect(editor.getCursorBufferPosition()).toEqual [3, 0]
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it "accepts / as a literal search pattern", ->
         editor.setText("abc\nd/f\nabc\nd/f\n")
         editor.setCursorBufferPosition([0, 0])
         keydown('?')
 
       it "accepts / as a literal search pattern", ->
         editor.setText("abc\nd/f\nabc\nd/f\n")
         editor.setCursorBufferPosition([0, 0])
         keydown('?')
-        submitCommandModeInputText('/')
+        submitNormalModeInputText('/')
         expect(editor.getCursorBufferPosition()).toEqual [3, 1]
         keydown('?')
         expect(editor.getCursorBufferPosition()).toEqual [3, 1]
         keydown('?')
-        submitCommandModeInputText('/')
+        submitNormalModeInputText('/')
         expect(editor.getCursorBufferPosition()).toEqual [1, 1]
         expect(editor.getCursorBufferPosition()).toEqual [1, 1]
+        expect(atom.beep).not.toHaveBeenCalled()
 
       describe "repeating", ->
         beforeEach ->
           keydown('?')
 
       describe "repeating", ->
         beforeEach ->
           keydown('?')
-          submitCommandModeInputText('def')
+          submitNormalModeInputText('def')
 
         it "repeats previous search as reversed with ?<enter>", ->
           keydown('?')
 
         it "repeats previous search as reversed with ?<enter>", ->
           keydown('?')
-          submitCommandModeInputText('')
+          submitNormalModeInputText('')
           expect(editor.getCursorBufferPosition()).toEqual [1, 0]
           expect(editor.getCursorBufferPosition()).toEqual [1, 0]
+          expect(atom.beep).not.toHaveBeenCalled()
 
         it "repeats previous search as reversed with ??", ->
           keydown('?')
 
         it "repeats previous search as reversed with ??", ->
           keydown('?')
-          submitCommandModeInputText('?')
+          submitNormalModeInputText('?')
           expect(editor.getCursorBufferPosition()).toEqual [1, 0]
           expect(editor.getCursorBufferPosition()).toEqual [1, 0]
+          expect(atom.beep).not.toHaveBeenCalled()
 
         describe 'the n keybinding', ->
           it "repeats the last search backwards", ->
             editor.setCursorBufferPosition([0, 0])
             keydown('n')
             expect(editor.getCursorBufferPosition()).toEqual [3, 0]
 
         describe 'the n keybinding', ->
           it "repeats the last search backwards", ->
             editor.setCursorBufferPosition([0, 0])
             keydown('n')
             expect(editor.getCursorBufferPosition()).toEqual [3, 0]
+            expect(atom.beep).not.toHaveBeenCalled()
 
         describe 'the N keybinding', ->
           it "repeats the last search forwards", ->
             editor.setCursorBufferPosition([0, 0])
             keydown('N', shift: true)
             expect(editor.getCursorBufferPosition()).toEqual [1, 0]
 
         describe 'the N keybinding', ->
           it "repeats the last search forwards", ->
             editor.setCursorBufferPosition([0, 0])
             keydown('N', shift: true)
             expect(editor.getCursorBufferPosition()).toEqual [1, 0]
+            expect(atom.beep).not.toHaveBeenCalled()
 
     describe "using search history", ->
 
     describe "using search history", ->
-      commandEditor = null
+      inputEditor = null
 
       beforeEach ->
         keydown('/')
 
       beforeEach ->
         keydown('/')
-        submitCommandModeInputText('def')
+        submitNormalModeInputText('def')
         expect(editor.getCursorBufferPosition()).toEqual [1, 0]
 
         keydown('/')
         expect(editor.getCursorBufferPosition()).toEqual [1, 0]
 
         keydown('/')
-        submitCommandModeInputText('abc')
+        submitNormalModeInputText('abc')
         expect(editor.getCursorBufferPosition()).toEqual [2, 0]
 
         expect(editor.getCursorBufferPosition()).toEqual [2, 0]
 
-        commandEditor = editor.commandModeInputView.editorElement
+        inputEditor = editor.normalModeInputView.editorElement
 
       it "allows searching history in the search field", ->
         keydown('/')
 
       it "allows searching history in the search field", ->
         keydown('/')
-        atom.commands.dispatch(commandEditor, 'core:move-up')
-        expect(commandEditor.getModel().getText()).toEqual('abc')
-        atom.commands.dispatch(commandEditor, 'core:move-up')
-        expect(commandEditor.getModel().getText()).toEqual('def')
-        atom.commands.dispatch(commandEditor, 'core:move-up')
-        expect(commandEditor.getModel().getText()).toEqual('def')
+        atom.commands.dispatch(inputEditor, 'core:move-up')
+        expect(inputEditor.getModel().getText()).toEqual('abc')
+        atom.commands.dispatch(inputEditor, 'core:move-up')
+        expect(inputEditor.getModel().getText()).toEqual('def')
+        atom.commands.dispatch(inputEditor, 'core:move-up')
+        expect(inputEditor.getModel().getText()).toEqual('def')
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it "resets the search field to empty when scrolling back", ->
         keydown('/')
 
       it "resets the search field to empty when scrolling back", ->
         keydown('/')
-        atom.commands.dispatch(commandEditor, 'core:move-up')
-        expect(commandEditor.getModel().getText()).toEqual('abc')
-        atom.commands.dispatch(commandEditor, 'core:move-up')
-        expect(commandEditor.getModel().getText()).toEqual('def')
-        atom.commands.dispatch(commandEditor, 'core:move-down')
-        expect(commandEditor.getModel().getText()).toEqual('abc')
-        atom.commands.dispatch(commandEditor, 'core:move-down')
-        expect(commandEditor.getModel().getText()).toEqual ''
+        atom.commands.dispatch(inputEditor, 'core:move-up')
+        expect(inputEditor.getModel().getText()).toEqual('abc')
+        atom.commands.dispatch(inputEditor, 'core:move-up')
+        expect(inputEditor.getModel().getText()).toEqual('def')
+        atom.commands.dispatch(inputEditor, 'core:move-down')
+        expect(inputEditor.getModel().getText()).toEqual('abc')
+        atom.commands.dispatch(inputEditor, 'core:move-down')
+        expect(inputEditor.getModel().getText()).toEqual ''
+        expect(atom.beep).not.toHaveBeenCalled()
 
   describe "the * keybinding", ->
     beforeEach ->
 
   describe "the * keybinding", ->
     beforeEach ->
@@ -1253,14 +1289,9 @@ describe "Motions", ->
 
         it "doesn't move cursor unless next match has exact word ending", ->
           editor.setText("abc\n@def\nabc\n@def1\n")
 
         it "doesn't move cursor unless next match has exact word ending", ->
           editor.setText("abc\n@def\nabc\n@def1\n")
-          # FIXME: I suspect there is a bug laying around
-          # Cursor#getEndOfCurrentWordBufferPosition, this function
-          # is returning '@' as a word, instead of returning the whole
-          # word '@def', this behavior is avoided in this test, when we
-          # execute the '*' command when cursor is on character after '@'
-          # (in this particular example, the 'd' char)
           editor.setCursorBufferPosition([1, 1])
           keydown("*")
           editor.setCursorBufferPosition([1, 1])
           keydown("*")
+          # this is because of the default isKeyword value of vim-mode that includes @
           expect(editor.getCursorBufferPosition()).toEqual [1, 0]
 
         # FIXME: This behavior is different from the one found in
           expect(editor.getCursorBufferPosition()).toEqual [1, 0]
 
         # FIXME: This behavior is different from the one found in
@@ -1404,58 +1435,58 @@ describe "Motions", ->
     it 'moves to the beginning of the line of a mark', ->
       editor.setCursorBufferPosition([1, 1])
       keydown('m')
     it 'moves to the beginning of the line of a mark', ->
       editor.setCursorBufferPosition([1, 1])
       keydown('m')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       editor.setCursorBufferPosition([0, 0])
       keydown('\'')
       editor.setCursorBufferPosition([0, 0])
       keydown('\'')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorBufferPosition()).toEqual [1, 4]
 
     it 'moves literally to a mark', ->
       editor.setCursorBufferPosition([1, 1])
       keydown('m')
       expect(editor.getCursorBufferPosition()).toEqual [1, 4]
 
     it 'moves literally to a mark', ->
       editor.setCursorBufferPosition([1, 1])
       keydown('m')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       editor.setCursorBufferPosition([0, 0])
       keydown('`')
       editor.setCursorBufferPosition([0, 0])
       keydown('`')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorBufferPosition()).toEqual [1, 1]
 
     it 'deletes to a mark by line', ->
       editor.setCursorBufferPosition([1, 5])
       keydown('m')
       expect(editor.getCursorBufferPosition()).toEqual [1, 1]
 
     it 'deletes to a mark by line', ->
       editor.setCursorBufferPosition([1, 5])
       keydown('m')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       editor.setCursorBufferPosition([0, 0])
       keydown('d')
       keydown('\'')
       editor.setCursorBufferPosition([0, 0])
       keydown('d')
       keydown('\'')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getText()).toEqual '56\n'
 
     it 'deletes before to a mark literally', ->
       editor.setCursorBufferPosition([1, 5])
       keydown('m')
       expect(editor.getText()).toEqual '56\n'
 
     it 'deletes before to a mark literally', ->
       editor.setCursorBufferPosition([1, 5])
       keydown('m')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       editor.setCursorBufferPosition([0, 1])
       keydown('d')
       keydown('`')
       editor.setCursorBufferPosition([0, 1])
       keydown('d')
       keydown('`')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getText()).toEqual ' 4\n56\n'
 
     it 'deletes after to a mark literally', ->
       editor.setCursorBufferPosition([1, 5])
       keydown('m')
       expect(editor.getText()).toEqual ' 4\n56\n'
 
     it 'deletes after to a mark literally', ->
       editor.setCursorBufferPosition([1, 5])
       keydown('m')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       editor.setCursorBufferPosition([2, 1])
       keydown('d')
       keydown('`')
       editor.setCursorBufferPosition([2, 1])
       keydown('d')
       keydown('`')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getText()).toEqual '  12\n    36\n'
 
     it 'moves back to previous', ->
       editor.setCursorBufferPosition([1, 5])
       keydown('`')
       expect(editor.getText()).toEqual '  12\n    36\n'
 
     it 'moves back to previous', ->
       editor.setCursorBufferPosition([1, 5])
       keydown('`')
-      commandModeInputKeydown('`')
+      normalModeInputKeydown('`')
       editor.setCursorBufferPosition([2, 1])
       keydown('`')
       editor.setCursorBufferPosition([2, 1])
       keydown('`')
-      commandModeInputKeydown('`')
+      normalModeInputKeydown('`')
       expect(editor.getCursorBufferPosition()).toEqual [1, 5]
 
   describe 'the f/F keybindings', ->
       expect(editor.getCursorBufferPosition()).toEqual [1, 5]
 
   describe 'the f/F keybindings', ->
@@ -1465,56 +1496,57 @@ describe "Motions", ->
 
     it 'moves to the first specified character it finds', ->
       keydown('f')
 
     it 'moves to the first specified character it finds', ->
       keydown('f')
-      commandModeInputKeydown('c')
+      normalModeInputKeydown('c')
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
 
     it 'moves backwards to the first specified character it finds', ->
       editor.setCursorScreenPosition([0, 2])
       keydown('F', shift: true)
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
 
     it 'moves backwards to the first specified character it finds', ->
       editor.setCursorScreenPosition([0, 2])
       keydown('F', shift: true)
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
 
     it 'respects count forward', ->
       keydown('2')
       keydown('f')
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
 
     it 'respects count forward', ->
       keydown('2')
       keydown('f')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
 
     it 'respects count backward', ->
       editor.setCursorScreenPosition([0, 6])
       keydown('2')
       keydown('F', shift: true)
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
 
     it 'respects count backward', ->
       editor.setCursorScreenPosition([0, 6])
       keydown('2')
       keydown('F', shift: true)
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
 
     it "doesn't move if the character specified isn't found", ->
       keydown('f')
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
 
     it "doesn't move if the character specified isn't found", ->
       keydown('f')
-      commandModeInputKeydown('d')
+      normalModeInputKeydown('d')
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
+      expect(atom.beep).not.toHaveBeenCalled()
 
     it "doesn't move if there aren't the specified count of the specified character", ->
       keydown('1')
       keydown('0')
       keydown('f')
 
     it "doesn't move if there aren't the specified count of the specified character", ->
       keydown('1')
       keydown('0')
       keydown('f')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       # a bug was making this behaviour depend on the count
       keydown('1')
       keydown('1')
       keydown('f')
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       # a bug was making this behaviour depend on the count
       keydown('1')
       keydown('1')
       keydown('f')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       # and backwards now
       editor.setCursorScreenPosition([0, 6])
       keydown('1')
       keydown('0')
       keydown('F', shift: true)
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       # and backwards now
       editor.setCursorScreenPosition([0, 6])
       keydown('1')
       keydown('0')
       keydown('F', shift: true)
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
       keydown('1')
       keydown('1')
       keydown('F', shift: true)
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
       keydown('1')
       keydown('1')
       keydown('F', shift: true)
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
 
     it "composes with d", ->
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
 
     it "composes with d", ->
@@ -1522,9 +1554,47 @@ describe "Motions", ->
       keydown('d')
       keydown('2')
       keydown('f')
       keydown('d')
       keydown('2')
       keydown('f')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getText()).toEqual 'abcbc\n'
 
       expect(editor.getText()).toEqual 'abcbc\n'
 
+    it "cancels c when no match found", ->
+      keydown('c')
+      keydown('f')
+      normalModeInputKeydown('d')
+      expect(editor.getText()).toBe("abcabcabcabc\n")
+      expect(editor.getCursorScreenPosition()).toEqual [0, 0]
+      expect(vimState.mode).toBe "normal"
+
+    describe 'with accented characters', ->
+      buildIMECompositionEvent = (event, {data, target}={}) ->
+        event = new Event(event)
+        event.data = data
+        Object.defineProperty(event, 'target', get: -> target)
+        event
+
+      buildTextInputEvent = ({data, target}) ->
+        event = new Event('textInput')
+        event.data = data
+        Object.defineProperty(event, 'target', get: -> target)
+        event
+
+      beforeEach ->
+        editor.setText("abcébcabcébc\n")
+        editor.setCursorScreenPosition([0, 0])
+
+      it 'works with IME composition', ->
+        keydown('f')
+        normalModeEditor = editor.normalModeInputView.editorElement
+        jasmine.attachToDOM(normalModeEditor)
+        domNode = normalModeEditor.component.domNode
+        inputNode = domNode.querySelector('.hidden-input')
+        domNode.dispatchEvent(buildIMECompositionEvent('compositionstart', target: inputNode))
+        domNode.dispatchEvent(buildIMECompositionEvent('compositionupdate', data: "´", target: inputNode))
+        expect(normalModeEditor.getModel().getText()).toEqual '´'
+        domNode.dispatchEvent(buildIMECompositionEvent('compositionend', data: "é", target: inputNode))
+        domNode.dispatchEvent(buildTextInputEvent(data: 'é', target: inputNode))
+        expect(editor.getCursorScreenPosition()).toEqual [0, 3]
+
   describe 'the t/T keybindings', ->
     beforeEach ->
       editor.setText("abcabcabcabc\n")
   describe 'the t/T keybindings', ->
     beforeEach ->
       editor.setText("abcabcabcabc\n")
@@ -1532,60 +1602,61 @@ describe "Motions", ->
 
     it 'moves to the character previous to the first specified character it finds', ->
       keydown('t')
 
     it 'moves to the character previous to the first specified character it finds', ->
       keydown('t')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
       # or stays put when it's already there
       keydown('t')
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
       # or stays put when it's already there
       keydown('t')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
 
     it 'moves backwards to the character after the first specified character it finds', ->
       editor.setCursorScreenPosition([0, 2])
       keydown('T', shift: true)
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
 
     it 'moves backwards to the character after the first specified character it finds', ->
       editor.setCursorScreenPosition([0, 2])
       keydown('T', shift: true)
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
 
     it 'respects count forward', ->
       keydown('2')
       keydown('t')
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
 
     it 'respects count forward', ->
       keydown('2')
       keydown('t')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
 
     it 'respects count backward', ->
       editor.setCursorScreenPosition([0, 6])
       keydown('2')
       keydown('T', shift: true)
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
 
     it 'respects count backward', ->
       editor.setCursorScreenPosition([0, 6])
       keydown('2')
       keydown('T', shift: true)
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
 
     it "doesn't move if the character specified isn't found", ->
       keydown('t')
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
 
     it "doesn't move if the character specified isn't found", ->
       keydown('t')
-      commandModeInputKeydown('d')
+      normalModeInputKeydown('d')
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
+      expect(atom.beep).not.toHaveBeenCalled()
 
     it "doesn't move if there aren't the specified count of the specified character", ->
       keydown('1')
       keydown('0')
       keydown('t')
 
     it "doesn't move if there aren't the specified count of the specified character", ->
       keydown('1')
       keydown('0')
       keydown('t')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       # a bug was making this behaviour depend on the count
       keydown('1')
       keydown('1')
       keydown('t')
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       # a bug was making this behaviour depend on the count
       keydown('1')
       keydown('1')
       keydown('t')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       # and backwards now
       editor.setCursorScreenPosition([0, 6])
       keydown('1')
       keydown('0')
       keydown('T', shift: true)
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       # and backwards now
       editor.setCursorScreenPosition([0, 6])
       keydown('1')
       keydown('0')
       keydown('T', shift: true)
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
       keydown('1')
       keydown('1')
       keydown('T', shift: true)
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
       keydown('1')
       keydown('1')
       keydown('T', shift: true)
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
 
     it "composes with d", ->
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
 
     it "composes with d", ->
@@ -1593,9 +1664,34 @@ describe "Motions", ->
       keydown('d')
       keydown('2')
       keydown('t')
       keydown('d')
       keydown('2')
       keydown('t')
-      commandModeInputKeydown('b')
+      normalModeInputKeydown('b')
       expect(editor.getText()).toBe 'abcbcabc\n'
 
       expect(editor.getText()).toBe 'abcbcabc\n'
 
+    it "selects character under cursor even when no movement happens", ->
+      editor.setCursorBufferPosition([0, 0])
+      keydown('d')
+      keydown('t')
+      normalModeInputKeydown('b')
+      expect(editor.getText()).toBe 'bcabcabcabc\n'
+
+  describe 'the v keybinding', ->
+    beforeEach ->
+      editor.setText("01\n002\n0003\n00004\n000005\n")
+      editor.setCursorScreenPosition([1, 1])
+
+    it "selects down a line", ->
+      keydown('v')
+      keydown('j')
+      keydown('j')
+      expect(editor.getSelectedText()).toBe "02\n0003\n00"
+      expect(editor.getSelectedBufferRange().isSingleLine()).toBeFalsy()
+
+    it "selects right", ->
+      keydown('v')
+      keydown('l')
+      expect(editor.getSelectedText()).toBe "02"
+      expect(editor.getSelectedBufferRange().isSingleLine()).toBeTruthy()
+
   describe 'the V keybinding', ->
     beforeEach ->
       editor.setText("01\n002\n0003\n00004\n000005\n")
   describe 'the V keybinding', ->
     beforeEach ->
       editor.setText("01\n002\n0003\n00004\n000005\n")
@@ -1603,9 +1699,11 @@ describe "Motions", ->
 
     it "selects down a line", ->
       keydown('V', shift: true)
 
     it "selects down a line", ->
       keydown('V', shift: true)
+      expect(editor.getSelectedBufferRange().isSingleLine()).toBeFalsy()
       keydown('j')
       keydown('j')
       expect(editor.getSelectedText()).toBe "002\n0003\n00004\n"
       keydown('j')
       keydown('j')
       expect(editor.getSelectedText()).toBe "002\n0003\n00004\n"
+      expect(editor.getSelectedBufferRange().isSingleLine()).toBeFalsy()
 
     it "selects up a line", ->
       keydown('V', shift: true)
 
     it "selects up a line", ->
       keydown('V', shift: true)
@@ -1619,7 +1717,7 @@ describe "Motions", ->
 
     it "repeat f in same direction", ->
       keydown('f')
 
     it "repeat f in same direction", ->
       keydown('f')
-      commandModeInputKeydown('c')
+      normalModeInputKeydown('c')
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
       keydown(';')
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
       keydown(';')
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
@@ -1629,7 +1727,7 @@ describe "Motions", ->
     it "repeat F in same direction", ->
       editor.setCursorScreenPosition([0, 10])
       keydown('F', shift: true)
     it "repeat F in same direction", ->
       editor.setCursorScreenPosition([0, 10])
       keydown('F', shift: true)
-      commandModeInputKeydown('c')
+      normalModeInputKeydown('c')
       expect(editor.getCursorScreenPosition()).toEqual [0, 8]
       keydown(';')
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
       expect(editor.getCursorScreenPosition()).toEqual [0, 8]
       keydown(';')
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
@@ -1639,7 +1737,7 @@ describe "Motions", ->
     it "repeat f in opposite direction", ->
       editor.setCursorScreenPosition([0, 6])
       keydown('f')
     it "repeat f in opposite direction", ->
       editor.setCursorScreenPosition([0, 6])
       keydown('f')
-      commandModeInputKeydown('c')
+      normalModeInputKeydown('c')
       expect(editor.getCursorScreenPosition()).toEqual [0, 8]
       keydown(',')
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
       expect(editor.getCursorScreenPosition()).toEqual [0, 8]
       keydown(',')
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
@@ -1649,7 +1747,7 @@ describe "Motions", ->
     it "repeat F in opposite direction", ->
       editor.setCursorScreenPosition([0, 4])
       keydown('F', shift: true)
     it "repeat F in opposite direction", ->
       editor.setCursorScreenPosition([0, 4])
       keydown('F', shift: true)
-      commandModeInputKeydown('c')
+      normalModeInputKeydown('c')
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
       keydown(',')
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
       keydown(',')
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
@@ -1658,7 +1756,7 @@ describe "Motions", ->
 
     it "alternate repeat f in same direction and reverse", ->
       keydown('f')
 
     it "alternate repeat f in same direction and reverse", ->
       keydown('f')
-      commandModeInputKeydown('c')
+      normalModeInputKeydown('c')
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
       keydown(';')
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
       keydown(';')
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
@@ -1668,7 +1766,7 @@ describe "Motions", ->
     it "alternate repeat F in same direction and reverse", ->
       editor.setCursorScreenPosition([0, 10])
       keydown('F', shift: true)
     it "alternate repeat F in same direction and reverse", ->
       editor.setCursorScreenPosition([0, 10])
       keydown('F', shift: true)
-      commandModeInputKeydown('c')
+      normalModeInputKeydown('c')
       expect(editor.getCursorScreenPosition()).toEqual [0, 8]
       keydown(';')
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
       expect(editor.getCursorScreenPosition()).toEqual [0, 8]
       keydown(';')
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
@@ -1677,7 +1775,7 @@ describe "Motions", ->
 
     it "repeat t in same direction", ->
       keydown('t')
 
     it "repeat t in same direction", ->
       keydown('t')
-      commandModeInputKeydown('c')
+      normalModeInputKeydown('c')
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
       keydown(';')
       expect(editor.getCursorScreenPosition()).toEqual [0, 4]
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
       keydown(';')
       expect(editor.getCursorScreenPosition()).toEqual [0, 4]
@@ -1685,7 +1783,7 @@ describe "Motions", ->
     it "repeat T in same direction", ->
       editor.setCursorScreenPosition([0, 10])
       keydown('T', shift: true)
     it "repeat T in same direction", ->
       editor.setCursorScreenPosition([0, 10])
       keydown('T', shift: true)
-      commandModeInputKeydown('c')
+      normalModeInputKeydown('c')
       expect(editor.getCursorScreenPosition()).toEqual [0, 9]
       keydown(';')
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
       expect(editor.getCursorScreenPosition()).toEqual [0, 9]
       keydown(';')
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
@@ -1693,7 +1791,7 @@ describe "Motions", ->
     it "repeat t in opposite direction first, and then reverse", ->
       editor.setCursorScreenPosition([0, 3])
       keydown('t')
     it "repeat t in opposite direction first, and then reverse", ->
       editor.setCursorScreenPosition([0, 3])
       keydown('t')
-      commandModeInputKeydown('c')
+      normalModeInputKeydown('c')
       expect(editor.getCursorScreenPosition()).toEqual [0, 4]
       keydown(',')
       expect(editor.getCursorScreenPosition()).toEqual [0, 3]
       expect(editor.getCursorScreenPosition()).toEqual [0, 4]
       keydown(',')
       expect(editor.getCursorScreenPosition()).toEqual [0, 3]
@@ -1703,7 +1801,7 @@ describe "Motions", ->
     it "repeat T in opposite direction first, and then reverse", ->
       editor.setCursorScreenPosition([0, 4])
       keydown('T', shift: true)
     it "repeat T in opposite direction first, and then reverse", ->
       editor.setCursorScreenPosition([0, 4])
       keydown('T', shift: true)
-      commandModeInputKeydown('c')
+      normalModeInputKeydown('c')
       expect(editor.getCursorScreenPosition()).toEqual [0, 3]
       keydown(',')
       expect(editor.getCursorScreenPosition()).toEqual [0, 4]
       expect(editor.getCursorScreenPosition()).toEqual [0, 3]
       keydown(',')
       expect(editor.getCursorScreenPosition()).toEqual [0, 4]
@@ -1713,7 +1811,7 @@ describe "Motions", ->
     it "repeat with count in same direction", ->
       editor.setCursorScreenPosition([0, 0])
       keydown('f')
     it "repeat with count in same direction", ->
       editor.setCursorScreenPosition([0, 0])
       keydown('f')
-      commandModeInputKeydown('c')
+      normalModeInputKeydown('c')
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
       keydown('2')
       keydown(';')
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
       keydown('2')
       keydown(';')
@@ -1722,12 +1820,45 @@ describe "Motions", ->
     it "repeat with count in reverse direction", ->
       editor.setCursorScreenPosition([0, 6])
       keydown('f')
     it "repeat with count in reverse direction", ->
       editor.setCursorScreenPosition([0, 6])
       keydown('f')
-      commandModeInputKeydown('c')
+      normalModeInputKeydown('c')
       expect(editor.getCursorScreenPosition()).toEqual [0, 8]
       keydown('2')
       keydown(',')
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
 
       expect(editor.getCursorScreenPosition()).toEqual [0, 8]
       keydown('2')
       keydown(',')
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
 
+    it "shares the most recent find/till command with other editors", ->
+      helpers.getEditorElement (otherEditorElement) ->
+        otherEditor = otherEditorElement.getModel()
+
+        editor.setText("a baz bar\n")
+        editor.setCursorScreenPosition([0, 0])
+
+        otherEditor.setText("foo bar baz")
+        otherEditor.setCursorScreenPosition([0, 0])
+
+        # by default keyDown and such go in the usual editor
+        keydown('f')
+        normalModeInputKeydown('b')
+        expect(editor.getCursorScreenPosition()).toEqual [0, 2]
+        expect(otherEditor.getCursorScreenPosition()).toEqual [0, 0]
+
+        # replay same find in the other editor
+        keydown(';', element: otherEditorElement)
+        expect(editor.getCursorScreenPosition()).toEqual [0, 2]
+        expect(otherEditor.getCursorScreenPosition()).toEqual [0, 4]
+
+        # do a till in the other editor
+        keydown('t', element: otherEditorElement)
+        normalModeInputKeydown('r', editor: otherEditor)
+        expect(editor.getCursorScreenPosition()).toEqual [0, 2]
+        expect(otherEditor.getCursorScreenPosition()).toEqual [0, 5]
+
+        # and replay in the normal editor
+        keydown(';')
+        expect(editor.getCursorScreenPosition()).toEqual [0, 7]
+        expect(otherEditor.getCursorScreenPosition()).toEqual [0, 5]
+        expect(atom.beep).not.toHaveBeenCalled()
+
   describe 'the % motion', ->
     beforeEach ->
       editor.setText("( ( ) )--{ text in here; and a function call(with parameters) }\n")
   describe 'the % motion', ->
     beforeEach ->
       editor.setText("( ( ) )--{ text in here; and a function call(with parameters) }\n")
@@ -1780,7 +1911,7 @@ describe "Motions", ->
 
     it "does not affect search history", ->
       keydown('/')
 
     it "does not affect search history", ->
       keydown('/')
-      submitCommandModeInputText 'func'
+      submitNormalModeInputText 'func'
       expect(editor.getCursorBufferPosition()).toEqual [0, 31]
       keydown('%')
       expect(editor.getCursorBufferPosition()).toEqual [0, 60]
       expect(editor.getCursorBufferPosition()).toEqual [0, 31]
       keydown('%')
       expect(editor.getCursorBufferPosition()).toEqual [0, 60]
index a41edb361b38f5ce6106b401c1379e366a79b6ac..0dff120ebb66bdbb840a9bf9376629688635bed8 100644 (file)
@@ -12,29 +12,30 @@ describe "Operators", ->
       editorElement = element
       editor = editorElement.getModel()
       vimState = editorElement.vimState
       editorElement = element
       editor = editorElement.getModel()
       vimState = editorElement.vimState
-      vimState.activateCommandMode()
-      vimState.resetCommandMode()
+      vimState.activateNormalMode()
+      vimState.resetNormalMode()
 
   keydown = (key, options={}) ->
     options.element ?= editorElement
     helpers.keydown(key, options)
 
 
   keydown = (key, options={}) ->
     options.element ?= editorElement
     helpers.keydown(key, options)
 
-  commandModeInputKeydown = (key, opts = {}) ->
-    editor.commandModeInputView.editorElement.getModel().setText(key)
+  normalModeInputKeydown = (key, opts = {}) ->
+    editor.normalModeInputView.editorElement.getModel().setText(key)
 
   describe "cancelling operations", ->
 
   describe "cancelling operations", ->
-    it "does not throw an error even if no operation is pending", ->
+    it "throws an error when no operation is pending", ->
       # cancel operation pushes an empty input operation
       # cancel operation pushes an empty input operation
-      # doing this without a pending operation throws an exception
+      # doing this without a pending operation would throw an exception
       expect(-> vimState.pushOperations(new Input(''))).toThrow()
 
       expect(-> vimState.pushOperations(new Input(''))).toThrow()
 
-      # make sure commandModeInputView is created
+    it "cancels and cleans up properly", ->
+      # make sure normalModeInputView is created
       keydown('/')
       expect(vimState.isOperatorPending()).toBe true
       keydown('/')
       expect(vimState.isOperatorPending()).toBe true
-      editor.commandModeInputView.viewModel.cancel()
+      editor.normalModeInputView.viewModel.cancel()
 
       expect(vimState.isOperatorPending()).toBe false
 
       expect(vimState.isOperatorPending()).toBe false
-      expect(-> editor.commandModeInputView.viewModel.cancel()).not.toThrow()
+      expect(editor.normalModeInputView).toBe undefined
 
   describe "the x keybinding", ->
     describe "on a line with content", ->
 
   describe "the x keybinding", ->
     describe "on a line with content", ->
@@ -88,6 +89,18 @@ describe "Operators", ->
           expect(editor.getCursorScreenPosition()).toEqual [0, 0]
           expect(vimState.getRegister('"').text).toBe 'bc'
 
           expect(editor.getCursorScreenPosition()).toEqual [0, 0]
           expect(vimState.getRegister('"').text).toBe 'bc'
 
+      describe "with multiple cursors", ->
+        beforeEach ->
+          editor.setText "abc\n012345\n\nxyz"
+          editor.setCursorScreenPosition [1, 4]
+          editor.addCursorAtBufferPosition [0, 1]
+
+        it "is undone as one operation", ->
+          keydown('x')
+          expect(editor.getText()).toBe "ac\n01235\n\nxyz"
+          keydown('u')
+          expect(editor.getText()).toBe "abc\n012345\n\nxyz"
+
       describe "with vim-mode.wrapLeftRightMotion", ->
         beforeEach ->
           editor.setText("abc\n012345\n\nxyz")
       describe "with vim-mode.wrapLeftRightMotion", ->
         beforeEach ->
           editor.setText("abc\n012345\n\nxyz")
@@ -147,7 +160,6 @@ describe "Operators", ->
           expect(editor.getCursorScreenPosition()).toEqual [0, 1]
           expect(vimState.getRegister('"').text).toBe '0123\n\nx'
 
           expect(editor.getCursorScreenPosition()).toEqual [0, 1]
           expect(vimState.getRegister('"').text).toBe '0123\n\nx'
 
-
     describe "on an empty line", ->
       beforeEach ->
         editor.setText("abc\n012345\n\nxyz")
     describe "on an empty line", ->
       beforeEach ->
         editor.setText("abc\n012345\n\nxyz")
@@ -165,7 +177,6 @@ describe "Operators", ->
         expect(editor.getText()).toBe "abc\n012345\nxyz"
         expect(editor.getCursorScreenPosition()).toEqual [2, 0]
 
         expect(editor.getText()).toBe "abc\n012345\nxyz"
         expect(editor.getCursorScreenPosition()).toEqual [2, 0]
 
-
   describe "the X keybinding", ->
     describe "on a line with content", ->
       beforeEach ->
   describe "the X keybinding", ->
     describe "on a line with content", ->
       beforeEach ->
@@ -194,7 +205,6 @@ describe "Operators", ->
         expect(editor.getCursorScreenPosition()).toEqual [0, 2]
         expect(vimState.getRegister('"').text).toBe '\n'
 
         expect(editor.getCursorScreenPosition()).toEqual [0, 2]
         expect(vimState.getRegister('"').text).toBe '\n'
 
-
     describe "on an empty line", ->
       beforeEach ->
         editor.setText("012345\n\nabcdef")
     describe "on an empty line", ->
       beforeEach ->
         editor.setText("012345\n\nabcdef")
@@ -303,7 +313,7 @@ describe "Operators", ->
     it "enters operator-pending mode", ->
       keydown('d')
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(true)
     it "enters operator-pending mode", ->
       keydown('d')
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(true)
-      expect(editorElement.classList.contains('command-mode')).toBe(false)
+      expect(editorElement.classList.contains('normal-mode')).toBe(false)
 
     describe "when followed by a d", ->
       it "deletes the current line and exits operator-pending mode", ->
 
     describe "when followed by a d", ->
       it "deletes the current line and exits operator-pending mode", ->
@@ -317,7 +327,7 @@ describe "Operators", ->
         expect(editor.getCursorScreenPosition()).toEqual [1, 0]
         expect(vimState.getRegister('"').text).toBe "abcde\n"
         expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
         expect(editor.getCursorScreenPosition()).toEqual [1, 0]
         expect(vimState.getRegister('"').text).toBe "abcde\n"
         expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-        expect(editorElement.classList.contains('command-mode')).toBe(true)
+        expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
       it "deletes the last line", ->
         editor.setText("12345\nabcde\nABCDE")
 
       it "deletes the last line", ->
         editor.setText("12345\nabcde\nABCDE")
@@ -344,16 +354,30 @@ describe "Operators", ->
         editor.setText("12345\nabcde\nABCDE\nQWERT")
         editor.setCursorScreenPosition([1, 1])
 
         editor.setText("12345\nabcde\nABCDE\nQWERT")
         editor.setCursorScreenPosition([1, 1])
 
+      it "undoes both lines", ->
         keydown('d')
         keydown('2')
         keydown('d')
 
         keydown('u')
 
         keydown('d')
         keydown('2')
         keydown('d')
 
         keydown('u')
 
-      it "undoes both lines", ->
         expect(editor.getText()).toBe "12345\nabcde\nABCDE\nQWERT"
         expect(editor.getSelectedText()).toBe ''
 
         expect(editor.getText()).toBe "12345\nabcde\nABCDE\nQWERT"
         expect(editor.getSelectedText()).toBe ''
 
+      describe "with multiple cursors", ->
+        beforeEach ->
+          editor.setCursorBufferPosition([1, 1])
+          editor.addCursorAtBufferPosition([0, 0])
+
+        it "is undone as one operation", ->
+          keydown('d')
+          keydown('l')
+
+          keydown('u')
+
+          expect(editor.getText()).toBe "12345\nabcde\nABCDE\nQWERT"
+          expect(editor.getSelectedText()).toBe ''
+
     describe "when followed by a w", ->
       it "deletes the next word until the end of the line and exits operator-pending mode", ->
         editor.setText("abcd efg\nabc")
     describe "when followed by a w", ->
       it "deletes the next word until the end of the line and exits operator-pending mode", ->
         editor.setText("abcd efg\nabc")
@@ -368,7 +392,7 @@ describe "Operators", ->
         expect(editor.getCursorScreenPosition()).toEqual [0, 5]
 
         expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
         expect(editor.getCursorScreenPosition()).toEqual [0, 5]
 
         expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-        expect(editorElement.classList.contains('command-mode')).toBe(true)
+        expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
       it "deletes to the beginning of the next word", ->
         editor.setText('abcd efg')
 
       it "deletes to the beginning of the next word", ->
         editor.setText('abcd efg')
@@ -404,59 +428,61 @@ describe "Operators", ->
         expect(editor.getCursorScreenPosition()).toEqual [0, 6]
         expect(vimState.getRegister('"').text).toBe "abcde"
         expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
         expect(editor.getCursorScreenPosition()).toEqual [0, 6]
         expect(vimState.getRegister('"').text).toBe "abcde"
         expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-        expect(editorElement.classList.contains('command-mode')).toBe(true)
+        expect(editorElement.classList.contains('normal-mode')).toBe(true)
+
+    describe "when followed by a j", ->
+      originalText = "12345\nabcde\nABCDE\n"
 
 
-    describe "when followed by an j", ->
       beforeEach ->
       beforeEach ->
-        originalText = "12345\nabcde\nABCDE"
         editor.setText(originalText)
 
         editor.setText(originalText)
 
-        describe "on the beginning of the file", ->
+      describe "on the beginning of the file", ->
+        it "deletes the next two lines", ->
           editor.setCursorScreenPosition([0, 0])
           editor.setCursorScreenPosition([0, 0])
-          it "deletes the next two lines", ->
-            keydown('d')
-            keydown('j')
-            expect(editor.getText()).toBe("ABCDE")
-
-        describe "on the end of the file", ->
-          editor.setCursorScreenPosition([4, 2])
-          it "deletes nothing", ->
-            keydown('d')
-            keydown('j')
-            expect(editor.getText()).toBe(originalText)
-
-        describe "on the middle of second line", ->
-          editor.setCursorScreenPosition([2, 1])
-          it "deletes the last two lines", ->
-            keydown('d')
-            keydown('j')
-            expect(editor.getText()).toBe("12345")
+          keydown('d')
+          keydown('j')
+          expect(editor.getText()).toBe("ABCDE\n")
+
+      describe "on the end of the file", ->
+        it "deletes nothing", ->
+          editor.setCursorScreenPosition([4, 0])
+          keydown('d')
+          keydown('j')
+          expect(editor.getText()).toBe(originalText)
+
+      describe "on the middle of second line", ->
+        it "deletes the last two lines", ->
+          editor.setCursorScreenPosition([1, 2])
+          keydown('d')
+          keydown('j')
+          expect(editor.getText()).toBe("12345\n")
 
     describe "when followed by an k", ->
 
     describe "when followed by an k", ->
+      originalText = "12345\nabcde\nABCDE"
+
       beforeEach ->
       beforeEach ->
-        originalText = "12345\nabcde\nABCDE"
         editor.setText(originalText)
 
         editor.setText(originalText)
 
-        describe "on the end of the file", ->
-          editor.setCursorScreenPosition([4, 2])
-          it "deletes the bottom two lines", ->
-            keydown('d')
-            keydown('k')
-            expect(editor.getText()).toBe("ABCDE")
+      describe "on the end of the file", ->
+        it "deletes the bottom two lines", ->
+          editor.setCursorScreenPosition([2, 4])
+          keydown('d')
+          keydown('k')
+          expect(editor.getText()).toBe("12345\n")
 
 
-        describe "on the beginning of the file", ->
+      describe "on the beginning of the file", ->
+        xit "deletes nothing", ->
           editor.setCursorScreenPosition([0, 0])
           editor.setCursorScreenPosition([0, 0])
-          it "deletes nothing", ->
-            keydown('d')
-            keydown('k')
-            expect(editor.getText()).toBe(originalText)
+          keydown('d')
+          keydown('k')
+          expect(editor.getText()).toBe(originalText)
 
 
-        describe "when on the middle of second line", ->
-          editor.setCursorScreenPosition([2, 1])
-          it "deletes the first two lines", ->
-            keydown('d')
-            keydown('k')
-            expect(editor.getText()).toBe("12345")
+      describe "when on the middle of second line", ->
+        it "deletes the first two lines", ->
+          editor.setCursorScreenPosition([1, 2])
+          keydown('d')
+          keydown('k')
+          expect(editor.getText()).toBe("ABCDE")
 
     describe "when followed by a G", ->
       beforeEach ->
 
     describe "when followed by a G", ->
       beforeEach ->
@@ -509,7 +535,7 @@ describe "Operators", ->
           keydown('y')
           keydown('d')
           keydown('t')
           keydown('y')
           keydown('d')
           keydown('t')
-          commandModeInputKeydown(')')
+          normalModeInputKeydown(')')
           expect(editor.getText()).toBe("test ()")
           expect(editor.getCursorScreenPosition()).toEqual [0, 6]
 
           expect(editor.getText()).toBe("test ()")
           expect(editor.getCursorScreenPosition()).toEqual [0, 6]
 
@@ -538,7 +564,7 @@ describe "Operators", ->
 
         keydown('d')
         keydown('t')
 
         keydown('d')
         keydown('t')
-        commandModeInputKeydown('d')
+        normalModeInputKeydown('d')
 
         expect(editor.getText()).toBe "d\nabc\nd"
         expect(editor.getCursorBufferPositions()).toEqual [
 
         expect(editor.getText()).toBe "d\nabc\nd"
         expect(editor.getCursorBufferPositions()).toEqual [
@@ -561,16 +587,45 @@ describe "Operators", ->
       editor.setText("12345\nabcde\nABCDE")
 
     describe "when followed by a c", ->
       editor.setText("12345\nabcde\nABCDE")
 
     describe "when followed by a c", ->
-      it "deletes the current line and enters insert mode", ->
-        editor.setCursorScreenPosition([1, 1])
+      describe "with autoindent", ->
+        beforeEach ->
+          editor.setText("12345\n  abcde\nABCDE")
+          editor.setCursorScreenPosition([1, 1])
+          spyOn(editor, 'shouldAutoIndent').andReturn(true)
+          spyOn(editor, 'autoIndentBufferRow').andCallFake (line) ->
+            editor.indent()
+          spyOn(editor.languageMode, 'suggestedIndentForLineAtBufferRow').andCallFake -> 1
 
 
-        keydown('c')
-        keydown('c')
+        it "deletes the current line and enters insert mode", ->
+          editor.setCursorScreenPosition([1, 1])
 
 
-        expect(editor.getText()).toBe "12345\n\nABCDE"
-        expect(editor.getCursorScreenPosition()).toEqual [1, 0]
-        expect(editorElement.classList.contains('command-mode')).toBe(false)
-        expect(editorElement.classList.contains('insert-mode')).toBe(true)
+          keydown('c')
+          keydown('c')
+
+          expect(editor.getText()).toBe "12345\n  \nABCDE"
+          expect(editor.getCursorScreenPosition()).toEqual [1, 2]
+          expect(editorElement.classList.contains('normal-mode')).toBe(false)
+          expect(editorElement.classList.contains('insert-mode')).toBe(true)
+
+        it "is repeatable", ->
+          keydown('c')
+          keydown('c')
+          editor.insertText("abc")
+          keydown 'escape'
+          expect(editor.getText()).toBe "12345\n  abc\nABCDE"
+          editor.setCursorScreenPosition([2, 3])
+          keydown '.'
+          expect(editor.getText()).toBe "12345\n  abc\n  abc\n"
+
+        it "is undoable", ->
+          keydown('c')
+          keydown('c')
+          editor.insertText("abc")
+          keydown 'escape'
+          expect(editor.getText()).toBe "12345\n  abc\nABCDE"
+          keydown 'u'
+          expect(editor.getText()).toBe "12345\n  abcde\nABCDE"
+          expect(editor.getSelectedText()).toBe ''
 
       describe "when the cursor is on the last line", ->
         it "deletes the line's content and enters insert mode on the last line", ->
 
       describe "when the cursor is on the last line", ->
         it "deletes the line's content and enters insert mode on the last line", ->
@@ -581,7 +636,7 @@ describe "Operators", ->
 
           expect(editor.getText()).toBe "12345\nabcde\n\n"
           expect(editor.getCursorScreenPosition()).toEqual [2, 0]
 
           expect(editor.getText()).toBe "12345\nabcde\n\n"
           expect(editor.getCursorScreenPosition()).toEqual [2, 0]
-          expect(editorElement.classList.contains('command-mode')).toBe(false)
+          expect(editorElement.classList.contains('normal-mode')).toBe(false)
           expect(editorElement.classList.contains('insert-mode')).toBe(true)
 
       describe "when the cursor is on the only line", ->
           expect(editorElement.classList.contains('insert-mode')).toBe(true)
 
       describe "when the cursor is on the only line", ->
@@ -592,9 +647,9 @@ describe "Operators", ->
           keydown('c')
           keydown('c')
 
           keydown('c')
           keydown('c')
 
-          expect(editor.getText()).toBe "\n"
+          expect(editor.getText()).toBe ""
           expect(editor.getCursorScreenPosition()).toEqual [0, 0]
           expect(editor.getCursorScreenPosition()).toEqual [0, 0]
-          expect(editorElement.classList.contains('command-mode')).toBe(false)
+          expect(editorElement.classList.contains('normal-mode')).toBe(false)
           expect(editorElement.classList.contains('insert-mode')).toBe(true)
 
     describe "when followed by i w", ->
           expect(editorElement.classList.contains('insert-mode')).toBe(true)
 
     describe "when followed by i w", ->
@@ -611,7 +666,7 @@ describe "Operators", ->
         # Just cannot get "typing" to work correctly in test.
         editor.setText("12345\nfg\nABCDE")
         keydown('escape')
         # Just cannot get "typing" to work correctly in test.
         editor.setText("12345\nfg\nABCDE")
         keydown('escape')
-        expect(editorElement.classList.contains('command-mode')).toBe(true)
+        expect(editorElement.classList.contains('normal-mode')).toBe(true)
         expect(editor.getText()).toBe "12345\nfg\nABCDE"
 
         keydown('u')
         expect(editor.getText()).toBe "12345\nfg\nABCDE"
 
         keydown('u')
@@ -651,6 +706,88 @@ describe "Operators", ->
           keydown('escape')
           expect(editor.getText()).toBe("12345\n\n")
 
           keydown('escape')
           expect(editor.getText()).toBe("12345\n\n")
 
+    describe "when followed by a %", ->
+      beforeEach ->
+        editor.setText("12345(67)8\nabc(d)e\nA()BCDE")
+
+      describe "before brackets or on the first one", ->
+        beforeEach ->
+          editor.setCursorScreenPosition([0, 1])
+          editor.addCursorAtScreenPosition([1, 1])
+          editor.addCursorAtScreenPosition([2, 1])
+          keydown('c')
+          keydown('%')
+          editor.insertText('x')
+
+        it "replaces inclusively until matching bracket", ->
+          expect(editor.getText()).toBe("1x8\naxe\nAxBCDE")
+          expect(vimState.mode).toBe "insert"
+
+        it "undoes correctly with u", ->
+          keydown('escape')
+          expect(vimState.mode).toBe "normal"
+          keydown 'u'
+          expect(editor.getText()).toBe("12345(67)8\nabc(d)e\nA()BCDE")
+
+      describe "inside brackets or on the ending one", ->
+        it "replaces inclusively backwards until matching bracket", ->
+          editor.setCursorScreenPosition([0, 6])
+          editor.addCursorAtScreenPosition([1, 5])
+          editor.addCursorAtScreenPosition([2, 2])
+          keydown('c')
+          keydown('%')
+          editor.insertText('x')
+          expect(editor.getText()).toBe("12345x7)8\nabcxe\nAxBCDE")
+          expect(vimState.mode).toBe "insert"
+
+      describe "after or without brackets", ->
+        it "deletes nothing", ->
+          editor.setText("12345(67)8\nabc(d)e\nABCDE")
+          editor.setCursorScreenPosition([0, 9])
+          editor.addCursorAtScreenPosition([2, 2])
+          keydown('c')
+          keydown('%')
+          expect(editor.getText()).toBe("12345(67)8\nabc(d)e\nABCDE")
+          expect(vimState.mode).toBe "normal"
+
+      describe "repetition with .", ->
+        beforeEach ->
+          editor.setCursorScreenPosition([0, 1])
+          keydown('c')
+          keydown('%')
+          editor.insertText('x')
+          keydown('escape')
+
+        it "repeats correctly before a bracket", ->
+          editor.setCursorScreenPosition([1, 0])
+          keydown('.')
+          expect(editor.getText()).toBe("1x8\nxe\nA()BCDE")
+          expect(vimState.mode).toBe "normal"
+
+        it "repeats correctly on the opening bracket", ->
+          editor.setCursorScreenPosition([1, 3])
+          keydown('.')
+          expect(editor.getText()).toBe("1x8\nabcxe\nA()BCDE")
+          expect(vimState.mode).toBe "normal"
+
+        it "repeats correctly inside brackets", ->
+          editor.setCursorScreenPosition([1, 4])
+          keydown('.')
+          expect(editor.getText()).toBe("1x8\nabcx)e\nA()BCDE")
+          expect(vimState.mode).toBe "normal"
+
+        it "repeats correctly on the closing bracket", ->
+          editor.setCursorScreenPosition([1, 5])
+          keydown('.')
+          expect(editor.getText()).toBe("1x8\nabcxe\nA()BCDE")
+          expect(vimState.mode).toBe "normal"
+
+        it "does nothing when repeated after a bracket", ->
+          editor.setCursorScreenPosition([2, 3])
+          keydown('.')
+          expect(editor.getText()).toBe("1x8\nabc(d)e\nA()BCDE")
+          expect(vimState.mode).toBe "normal"
+
     describe "when followed by a goto line G", ->
       beforeEach ->
         editor.setText "12345\nabcde\nABCDE"
     describe "when followed by a goto line G", ->
       beforeEach ->
         editor.setText "12345\nabcde\nABCDE"
@@ -673,6 +810,130 @@ describe "Operators", ->
           keydown('escape')
           expect(editor.getText()).toBe("12345\n\nABCDE")
 
           keydown('escape')
           expect(editor.getText()).toBe("12345\n\nABCDE")
 
+    describe "in visual mode", ->
+      beforeEach ->
+        editor.setText "123456789\nabcde\nfghijklmnopq\nuvwxyz"
+        editor.setCursorScreenPosition [1, 1]
+
+      describe "with characterwise selection on a single line", ->
+        it "repeats with .", ->
+          keydown 'v'
+          keydown '2'
+          keydown 'l'
+          keydown 'c'
+          editor.insertText "ab"
+          keydown 'escape'
+          expect(editor.getText()).toBe "123456789\naabe\nfghijklmnopq\nuvwxyz"
+
+          editor.setCursorScreenPosition [0, 1]
+          keydown '.'
+          expect(editor.getText()).toBe "1ab56789\naabe\nfghijklmnopq\nuvwxyz"
+
+        it "repeats shortened with . near the end of the line", ->
+          editor.setCursorScreenPosition [0, 2]
+          keydown 'v'
+          keydown '4'
+          keydown 'l'
+          keydown 'c'
+          editor.insertText "ab"
+          keydown 'escape'
+          expect(editor.getText()).toBe "12ab89\nabcde\nfghijklmnopq\nuvwxyz"
+
+          editor.setCursorScreenPosition [1, 3]
+          keydown '.'
+          expect(editor.getText()).toBe "12ab89\nabcab\nfghijklmnopq\nuvwxyz"
+
+        it "repeats shortened with . near the end of the line regardless of whether motion wrapping is enabled", ->
+          atom.config.set('vim-mode.wrapLeftRightMotion', true)
+          editor.setCursorScreenPosition [0, 2]
+          keydown 'v'
+          keydown '4'
+          keydown 'l'
+          keydown 'c'
+          editor.insertText "ab"
+          keydown 'escape'
+          expect(editor.getText()).toBe "12ab89\nabcde\nfghijklmnopq\nuvwxyz"
+
+          editor.setCursorScreenPosition [1, 3]
+          keydown '.'
+          # this differs from VIM, which would eat the \n before fghij...
+          expect(editor.getText()).toBe "12ab89\nabcab\nfghijklmnopq\nuvwxyz"
+
+      describe "is repeatable with characterwise selection over multiple lines", ->
+        it "repeats with .", ->
+          keydown 'v'
+          keydown 'j'
+          keydown '3'
+          keydown 'l'
+          keydown 'c'
+          editor.insertText "x"
+          keydown 'escape'
+          expect(editor.getText()).toBe "123456789\naxklmnopq\nuvwxyz"
+
+          editor.setCursorScreenPosition [0, 1]
+          keydown '.'
+          expect(editor.getText()).toBe "1xnopq\nuvwxyz"
+
+        it "repeats shortened with . near the end of the line", ->
+          # this behaviour is unlike VIM, see #737
+          keydown 'v'
+          keydown 'j'
+          keydown '6'
+          keydown 'l'
+          keydown 'c'
+          editor.insertText "x"
+          keydown 'escape'
+          expect(editor.getText()).toBe "123456789\naxnopq\nuvwxyz"
+
+          editor.setCursorScreenPosition [0, 1]
+          keydown '.'
+          expect(editor.getText()).toBe "1x\nuvwxyz"
+
+      describe "is repeatable with linewise selection", ->
+        describe "with one line selected", ->
+          it "repeats with .", ->
+            keydown 'V', shift: true
+            keydown 'c'
+            editor.insertText "x"
+            keydown 'escape'
+            expect(editor.getText()).toBe "123456789\nx\nfghijklmnopq\nuvwxyz"
+
+            editor.setCursorScreenPosition [0, 7]
+            keydown '.'
+            expect(editor.getText()).toBe "x\nx\nfghijklmnopq\nuvwxyz"
+
+            editor.setCursorScreenPosition [2, 0]
+            keydown '.'
+            expect(editor.getText()).toBe "x\nx\nx\nuvwxyz"
+
+        describe "with multiple lines selected", ->
+          it "repeats with .", ->
+            keydown 'V', shift: true
+            keydown 'j'
+            keydown 'c'
+            editor.insertText "x"
+            keydown 'escape'
+            expect(editor.getText()).toBe "123456789\nx\nuvwxyz"
+
+            editor.setCursorScreenPosition [0, 7]
+            keydown '.'
+            expect(editor.getText()).toBe "x\nuvwxyz"
+
+          it "repeats shortened with . near the end of the file", ->
+            keydown 'V', shift: true
+            keydown 'j'
+            keydown 'c'
+            editor.insertText "x"
+            keydown 'escape'
+            expect(editor.getText()).toBe "123456789\nx\nuvwxyz"
+
+            editor.setCursorScreenPosition [1, 7]
+            keydown '.'
+            expect(editor.getText()).toBe "123456789\nx\n"
+
+      xdescribe "is repeatable with block selection", ->
+        # there is no block selection yet
+
   describe "the C keybinding", ->
     beforeEach ->
       editor.getBuffer().setText("012\n")
   describe "the C keybinding", ->
     beforeEach ->
       editor.getBuffer().setText("012\n")
@@ -682,13 +943,14 @@ describe "Operators", ->
     it "deletes the contents until the end of the line and enters insert mode", ->
       expect(editor.getText()).toBe "0\n"
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
     it "deletes the contents until the end of the line and enters insert mode", ->
       expect(editor.getText()).toBe "0\n"
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
-      expect(editorElement.classList.contains('command-mode')).toBe(false)
+      expect(editorElement.classList.contains('normal-mode')).toBe(false)
       expect(editorElement.classList.contains('insert-mode')).toBe(true)
 
   describe "the y keybinding", ->
     beforeEach ->
       expect(editorElement.classList.contains('insert-mode')).toBe(true)
 
   describe "the y keybinding", ->
     beforeEach ->
-      editor.getBuffer().setText("012 345\nabc\n")
+      editor.getBuffer().setText("012 345\nabc\ndefg\n")
       editor.setCursorScreenPosition([0, 4])
       editor.setCursorScreenPosition([0, 4])
+      vimState.setRegister('"', text: '345')
 
     describe "when selected lines in visual linewise mode", ->
       beforeEach ->
 
     describe "when selected lines in visual linewise mode", ->
       beforeEach ->
@@ -766,7 +1028,7 @@ describe "Operators", ->
       it "does not yank when motion fails", ->
         keydown('y')
         keydown('t')
       it "does not yank when motion fails", ->
         keydown('y')
         keydown('t')
-        commandModeInputKeydown('x')
+        normalModeInputKeydown('x')
         expect(vimState.getRegister('"').text).toBe '345'
 
     describe "with a text object", ->
         expect(vimState.getRegister('"').text).toBe '345'
 
     describe "with a text object", ->
@@ -782,11 +1044,11 @@ describe "Operators", ->
         keydown('y')
         keydown('h')
 
         keydown('y')
         keydown('h')
 
-        it "saves the left letter to the default register", ->
-          expect(vimState.getRegister('"').text).toBe " "
+      it "saves the left letter to the default register", ->
+        expect(vimState.getRegister('"').text).toBe " "
 
 
-        it "moves the cursor position to the left", ->
-          expect(editor.getCursorScreenPosition()).toEqual [0, 3]
+      it "moves the cursor position to the left", ->
+        expect(editor.getCursorScreenPosition()).toEqual [0, 3]
 
     describe "with a down motion", ->
       beforeEach ->
 
     describe "with a down motion", ->
       beforeEach ->
@@ -799,6 +1061,18 @@ describe "Operators", ->
       it "leaves the cursor at the starting position", ->
         expect(editor.getCursorScreenPosition()).toEqual [0, 4]
 
       it "leaves the cursor at the starting position", ->
         expect(editor.getCursorScreenPosition()).toEqual [0, 4]
 
+    describe "with an up motion", ->
+      beforeEach ->
+        editor.setCursorScreenPosition([2, 2])
+        keydown 'y'
+        keydown 'k'
+
+      it "saves both full lines to the default register", ->
+        expect(vimState.getRegister('"').text).toBe "abc\ndefg\n"
+
+      it "puts the cursor on the first line and the original column", ->
+        expect(editor.getCursorScreenPosition()).toEqual [1, 2]
+
     describe "when followed by a G", ->
       beforeEach ->
         originalText = "12345\nabcde\nABCDE"
     describe "when followed by a G", ->
       beforeEach ->
         originalText = "12345\nabcde\nABCDE"
@@ -855,6 +1129,47 @@ describe "Operators", ->
         expect(vimState.getRegister('"').text).toBe '123'
         expect(editor.getCursorBufferPositions()).toEqual [[0, 0], [1, 2]]
 
         expect(vimState.getRegister('"').text).toBe '123'
         expect(editor.getCursorBufferPositions()).toEqual [[0, 0], [1, 2]]
 
+    describe "in a long file", ->
+      beforeEach ->
+        editor.setHeight(400)
+        editor.setLineHeightInPixels(10)
+        editor.setDefaultCharWidth(10)
+        text = ""
+        for i in [1..200]
+          text += "#{i}\n"
+        editor.setText(text)
+
+      describe "yanking many lines forward", ->
+        it "does not scroll the window", ->
+          editor.setCursorBufferPosition [40, 1]
+          previousScrollTop = editor.getScrollTop()
+
+          # yank many lines
+          keydown('y')
+          keydown('1')
+          keydown('6')
+          keydown('0')
+          keydown('G', shift: true)
+
+          expect(editor.getScrollTop()).toEqual(previousScrollTop)
+          expect(editor.getCursorBufferPosition()).toEqual [40, 1]
+          expect(vimState.getRegister('"').text.split('\n').length).toBe 121
+
+      describe "yanking many lines backwards", ->
+        it "scrolls the window", ->
+          editor.setCursorBufferPosition [140, 1]
+          previousScrollTop = editor.getScrollTop()
+
+          # yank many lines
+          keydown('y')
+          keydown('6')
+          keydown('0')
+          keydown('G', shift: true)
+
+          expect(editor.getScrollTop()).toNotEqual previousScrollTop
+          expect(editor.getCursorBufferPosition()).toEqual [59, 1]
+          expect(vimState.getRegister('"').text.split('\n').length).toBe 83
+
   describe "the yy keybinding", ->
     describe "on a single line file", ->
       beforeEach ->
   describe "the yy keybinding", ->
     describe "on a single line file", ->
       beforeEach ->
@@ -918,6 +1233,15 @@ describe "Operators", ->
           expect(editor.getText()).toBe "034512\n"
           expect(editor.getCursorScreenPosition()).toEqual [0, 3]
 
           expect(editor.getText()).toBe "034512\n"
           expect(editor.getCursorScreenPosition()).toEqual [0, 3]
 
+      describe "at the end of a line", ->
+        beforeEach ->
+          editor.setCursorScreenPosition [0, 2]
+          keydown('p')
+
+        it "positions cursor correctly", ->
+          expect(editor.getText()).toBe "012345\n"
+          expect(editor.getCursorScreenPosition()).toEqual [0, 5]
+
       describe "when useClipboardAsDefaultRegister enabled", ->
         it "inserts contents from clipboard", ->
           atom.config.set 'vim-mode.useClipboardAsDefaultRegister', true
       describe "when useClipboardAsDefaultRegister enabled", ->
         it "inserts contents from clipboard", ->
           atom.config.set 'vim-mode.useClipboardAsDefaultRegister', true
@@ -1260,26 +1584,50 @@ describe "Operators", ->
           it "outdents all three lines", ->
             expect(editor.getText()).toBe "12345\nabcde\nABCDE"
 
           it "outdents all three lines", ->
             expect(editor.getText()).toBe "12345\nabcde\nABCDE"
 
-    describe "in visual mode", ->
+    describe "in visual mode linewise", ->
       beforeEach ->
         editor.setCursorScreenPosition([0, 0])
         keydown('v', shift: true)
       beforeEach ->
         editor.setCursorScreenPosition([0, 0])
         keydown('v', shift: true)
-        keydown('>')
+        keydown('j')
+
+      describe "single indent multiple lines", ->
+        beforeEach ->
+          keydown('>')
 
 
-      it "indents the current line and remains in visual mode", ->
-        expect(editorElement.classList.contains('visual-mode')).toBe(true)
-        expect(editor.getText()).toBe "  12345\nabcde\nABCDE"
-        expect(editor.getSelectedText()).toBe "  12345\n"
+        it "indents both lines once and exits visual mode", ->
+          expect(editorElement.classList.contains('normal-mode')).toBe(true)
+          expect(editor.getText()).toBe "  12345\n  abcde\nABCDE"
+          expect(editor.getSelectedBufferRanges()).toEqual [ [[0, 2], [0, 2]] ]
 
 
-      it "allows repeating the operation", ->
-        keydown("escape")
-        keydown(".")
-        expect(editorElement.classList.contains('command-mode')).toBe(true)
-        expect(editor.getText()).toBe "    12345\nabcde\nABCDE"
+        it "allows repeating the operation", ->
+          keydown('.')
+          expect(editor.getText()).toBe "    12345\n    abcde\nABCDE"
+
+      describe "multiple indent multiple lines", ->
+        beforeEach ->
+          keydown('2')
+          keydown('>')
+
+        it "indents both lines twice and exits visual mode", ->
+          expect(editorElement.classList.contains('normal-mode')).toBe(true)
+          expect(editor.getText()).toBe "    12345\n    abcde\nABCDE"
+          expect(editor.getSelectedBufferRanges()).toEqual [ [[0, 4], [0, 4]] ]
+
+    describe "with multiple selections", ->
+      beforeEach ->
+        editor.setCursorScreenPosition([1, 3])
+        keydown('v')
+        keydown('j')
+        editor.addCursorAtScreenPosition([0, 0])
+
+      it "indents the lines and keeps the cursors", ->
+        keydown('>')
+        expect(editor.getText()).toBe "  12345\n  abcde\n  ABCDE"
+        expect(editor.getCursorScreenPositions()).toEqual [[1, 2], [0, 2]]
 
   describe "the < keybinding", ->
     beforeEach ->
 
   describe "the < keybinding", ->
     beforeEach ->
-      editor.setText("  12345\n  abcde\nABCDE")
+      editor.setText("    12345\n    abcde\nABCDE")
       editor.setCursorScreenPosition([0, 0])
 
     describe "when followed by a <", ->
       editor.setCursorScreenPosition([0, 0])
 
     describe "when followed by a <", ->
@@ -1287,9 +1635,9 @@ describe "Operators", ->
         keydown('<')
         keydown('<')
 
         keydown('<')
         keydown('<')
 
-      it "indents the current line", ->
-        expect(editor.getText()).toBe "12345\n  abcde\nABCDE"
-        expect(editor.getCursorScreenPosition()).toEqual [0, 0]
+      it "outdents the current line", ->
+        expect(editor.getText()).toBe "  12345\n    abcde\nABCDE"
+        expect(editor.getCursorScreenPosition()).toEqual [0, 2]
 
     describe "when followed by a repeating <", ->
       beforeEach ->
 
     describe "when followed by a repeating <", ->
       beforeEach ->
@@ -1297,25 +1645,43 @@ describe "Operators", ->
         keydown('<')
         keydown('<')
 
         keydown('<')
         keydown('<')
 
-      it "indents multiple lines at once", ->
-        expect(editor.getText()).toBe "12345\nabcde\nABCDE"
-        expect(editor.getCursorScreenPosition()).toEqual [0, 0]
+      it "outdents multiple lines at once", ->
+        expect(editor.getText()).toBe "  12345\n  abcde\nABCDE"
+        expect(editor.getCursorScreenPosition()).toEqual [0, 2]
 
       describe "undo behavior", ->
         beforeEach -> keydown('u')
 
         it "indents both lines", ->
 
       describe "undo behavior", ->
         beforeEach -> keydown('u')
 
         it "indents both lines", ->
-          expect(editor.getText()).toBe "  12345\n  abcde\nABCDE"
+          expect(editor.getText()).toBe "    12345\n    abcde\nABCDE"
 
 
-    describe "in visual mode", ->
+    describe "in visual mode linewise", ->
       beforeEach ->
         keydown('v', shift: true)
       beforeEach ->
         keydown('v', shift: true)
-        keydown('<')
+        keydown('j')
 
 
-      it "indents the current line and remains in visual mode", ->
-        expect(editorElement.classList.contains('visual-mode')).toBe(true)
-        expect(editor.getText()).toBe "12345\n  abcde\nABCDE"
-        expect(editor.getSelectedText()).toBe "12345\n"
+      describe "single outdent multiple lines", ->
+        beforeEach ->
+          keydown('<')
+
+        it "outdents the current line and exits visual mode", ->
+          expect(editorElement.classList.contains('normal-mode')).toBe(true)
+          expect(editor.getText()).toBe "  12345\n  abcde\nABCDE"
+          expect(editor.getSelectedBufferRanges()).toEqual [ [[0, 2], [0, 2]] ]
+
+        it "allows repeating the operation", ->
+          keydown('.')
+          expect(editor.getText()).toBe "12345\nabcde\nABCDE"
+
+      describe "multiple outdent multiple lines", ->
+        beforeEach ->
+          keydown('2')
+          keydown('<')
+
+        it "outdents both lines twice and exits visual mode", ->
+          expect(editorElement.classList.contains('normal-mode')).toBe(true)
+          expect(editor.getText()).toBe "12345\nabcde\nABCDE"
+          expect(editor.getSelectedBufferRanges()).toEqual [ [[0, 0], [0, 0]] ]
 
   describe "the = keybinding", ->
     oldGrammar = []
 
   describe "the = keybinding", ->
     oldGrammar = []
@@ -1344,6 +1710,16 @@ describe "Operators", ->
         it "indents the current line", ->
           expect(editor.indentationForBufferRow(1)).toBe 0
 
         it "indents the current line", ->
           expect(editor.indentationForBufferRow(1)).toBe 0
 
+      describe "when followed by a G", ->
+        beforeEach ->
+          editor.setCursorScreenPosition([0, 0])
+          keydown('=')
+          keydown('G', shift: true)
+
+        it "uses the default count", ->
+          expect(editor.indentationForBufferRow(1)).toBe 0
+          expect(editor.indentationForBufferRow(2)).toBe 0
+
       describe "when followed by a repeating =", ->
         beforeEach ->
           keydown('2')
       describe "when followed by a repeating =", ->
         beforeEach ->
           keydown('2')
@@ -1389,7 +1765,7 @@ describe "Operators", ->
 
     it "replaces a single character", ->
       keydown('r')
 
     it "replaces a single character", ->
       keydown('r')
-      commandModeInputKeydown('x')
+      normalModeInputKeydown('x')
       expect(editor.getText()).toBe 'x2\nx4\n\n'
 
     it "does nothing when cancelled", ->
       expect(editor.getText()).toBe 'x2\nx4\n\n'
 
     it "does nothing when cancelled", ->
@@ -1397,30 +1773,30 @@ describe "Operators", ->
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(true)
       keydown('escape')
       expect(editor.getText()).toBe '12\n34\n\n'
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(true)
       keydown('escape')
       expect(editor.getText()).toBe '12\n34\n\n'
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "replaces a single character with a line break", ->
       keydown('r')
 
     it "replaces a single character with a line break", ->
       keydown('r')
-      atom.commands.dispatch(editor.commandModeInputView.editorElement, 'core:confirm')
+      atom.commands.dispatch(editor.normalModeInputView.editorElement, 'core:confirm')
       expect(editor.getText()).toBe '\n2\n\n4\n\n'
       expect(editor.getCursorBufferPositions()).toEqual [[1, 0], [3, 0]]
 
     it "composes properly with motions", ->
       keydown('2')
       keydown('r')
       expect(editor.getText()).toBe '\n2\n\n4\n\n'
       expect(editor.getCursorBufferPositions()).toEqual [[1, 0], [3, 0]]
 
     it "composes properly with motions", ->
       keydown('2')
       keydown('r')
-      commandModeInputKeydown('x')
+      normalModeInputKeydown('x')
       expect(editor.getText()).toBe 'xx\nxx\n\n'
 
     it "does nothing on an empty line", ->
       editor.setCursorBufferPosition([2, 0])
       keydown('r')
       expect(editor.getText()).toBe 'xx\nxx\n\n'
 
     it "does nothing on an empty line", ->
       editor.setCursorBufferPosition([2, 0])
       keydown('r')
-      commandModeInputKeydown('x')
+      normalModeInputKeydown('x')
       expect(editor.getText()).toBe '12\n34\n\n'
 
     it "does nothing if asked to replace more characters than there are on a line", ->
       keydown('3')
       keydown('r')
       expect(editor.getText()).toBe '12\n34\n\n'
 
     it "does nothing if asked to replace more characters than there are on a line", ->
       keydown('3')
       keydown('r')
-      commandModeInputKeydown('x')
+      normalModeInputKeydown('x')
       expect(editor.getText()).toBe '12\n34\n\n'
 
     describe "when in visual mode", ->
       expect(editor.getText()).toBe '12\n34\n\n'
 
     describe "when in visual mode", ->
@@ -1430,14 +1806,42 @@ describe "Operators", ->
 
       it "replaces the entire selection with the given character", ->
         keydown('r')
 
       it "replaces the entire selection with the given character", ->
         keydown('r')
-        commandModeInputKeydown('x')
+        normalModeInputKeydown('x')
         expect(editor.getText()).toBe 'xx\nxx\n\n'
 
       it "leaves the cursor at the beginning of the selection", ->
         keydown('r')
         expect(editor.getText()).toBe 'xx\nxx\n\n'
 
       it "leaves the cursor at the beginning of the selection", ->
         keydown('r')
-        commandModeInputKeydown('x')
+        normalModeInputKeydown('x')
         expect(editor.getCursorBufferPositions()).toEqual [[0, 0], [1, 0]]
 
         expect(editor.getCursorBufferPositions()).toEqual [[0, 0], [1, 0]]
 
+    describe 'with accented characters', ->
+      buildIMECompositionEvent = (event, {data, target}={}) ->
+        event = new Event(event)
+        event.data = data
+        Object.defineProperty(event, 'target', get: -> target)
+        event
+
+      buildTextInputEvent = ({data, target}) ->
+        event = new Event('textInput')
+        event.data = data
+        Object.defineProperty(event, 'target', get: -> target)
+        event
+
+      it 'works with IME composition', ->
+        keydown('r')
+        normalModeEditor = editor.normalModeInputView.editorElement
+        jasmine.attachToDOM(normalModeEditor)
+        domNode = normalModeEditor.component.domNode
+        inputNode = domNode.querySelector('.hidden-input')
+        domNode.dispatchEvent(buildIMECompositionEvent('compositionstart', target: inputNode))
+        domNode.dispatchEvent(buildIMECompositionEvent('compositionupdate', data: 's', target: inputNode))
+        expect(normalModeEditor.getModel().getText()).toEqual 's'
+        domNode.dispatchEvent(buildIMECompositionEvent('compositionupdate', data: 'sd', target: inputNode))
+        expect(normalModeEditor.getModel().getText()).toEqual 'sd'
+        domNode.dispatchEvent(buildIMECompositionEvent('compositionend', target: inputNode))
+        domNode.dispatchEvent(buildTextInputEvent(data: '速度', target: inputNode))
+        expect(editor.getText()).toBe '速度2\n速度4\n\n'
+
   describe 'the m keybinding', ->
     beforeEach ->
       editor.setText('12\n34\n56\n')
   describe 'the m keybinding', ->
     beforeEach ->
       editor.setText('12\n34\n56\n')
@@ -1445,7 +1849,7 @@ describe "Operators", ->
 
     it 'marks a position', ->
       keydown('m')
 
     it 'marks a position', ->
       keydown('m')
-      commandModeInputKeydown('a')
+      normalModeInputKeydown('a')
       expect(vimState.getMark('a')).toEqual [0, 1]
 
   describe 'the ~ keybinding', ->
       expect(vimState.getMark('a')).toEqual [0, 1]
 
   describe 'the ~ keybinding', ->
@@ -1490,6 +1894,13 @@ describe "Operators", ->
         keydown("l")
         expect(editor.getText()).toBe 'Abc\nXyZ'
 
         keydown("l")
         expect(editor.getText()).toBe 'Abc\nXyZ'
 
+      it "uses default count", ->
+        editor.setCursorBufferPosition([0, 0])
+        keydown("g")
+        keydown("~")
+        keydown("G", shift: true)
+        expect(editor.getText()).toBe 'AbC\nxYz'
+
   describe 'the U keybinding', ->
     beforeEach ->
       editor.setText('aBc\nXyZ')
   describe 'the U keybinding', ->
     beforeEach ->
       editor.setText('aBc\nXyZ')
@@ -1513,6 +1924,13 @@ describe "Operators", ->
       expect(editor.getText()).toBe 'ABC\nXYZ'
       expect(editor.getCursorScreenPosition()).toEqual [1, 2]
 
       expect(editor.getText()).toBe 'ABC\nXYZ'
       expect(editor.getCursorScreenPosition()).toEqual [1, 2]
 
+    it "uses default count", ->
+      editor.setCursorBufferPosition([0, 0])
+      keydown("g")
+      keydown("U", shift: true)
+      keydown("G", shift: true)
+      expect(editor.getText()).toBe 'ABC\nXYZ'
+
     it "makes the selected text uppercase in visual mode", ->
       keydown("V", shift: true)
       keydown("U", shift: true)
     it "makes the selected text uppercase in visual mode", ->
       keydown("V", shift: true)
       keydown("U", shift: true)
@@ -1530,6 +1948,13 @@ describe "Operators", ->
       expect(editor.getText()).toBe 'abc\nXyZ'
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
 
       expect(editor.getText()).toBe 'abc\nXyZ'
       expect(editor.getCursorScreenPosition()).toEqual [0, 2]
 
+    it "uses default count", ->
+      editor.setCursorBufferPosition([0, 0])
+      keydown("g")
+      keydown("u")
+      keydown("G", shift: true)
+      expect(editor.getText()).toBe 'abc\nxyz'
+
     it "makes the selected text lowercase in visual mode", ->
       keydown("V", shift: true)
       keydown("u")
     it "makes the selected text lowercase in visual mode", ->
       keydown("V", shift: true)
       keydown("u")
@@ -1650,18 +2075,21 @@ describe "Operators", ->
         keydown('a', ctrl: true)
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 4], [3, 3], [4, 0]]
         expect(editor.getText()).toBe '124\nab46\ncd-66ef\nab-4\na-bcdef'
         keydown('a', ctrl: true)
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 4], [3, 3], [4, 0]]
         expect(editor.getText()).toBe '124\nab46\ncd-66ef\nab-4\na-bcdef'
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it "repeats with .", ->
         keydown 'a', ctrl: true
         keydown '.'
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 4], [3, 3], [4, 0]]
         expect(editor.getText()).toBe '125\nab47\ncd-65ef\nab-3\na-bcdef'
 
       it "repeats with .", ->
         keydown 'a', ctrl: true
         keydown '.'
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 4], [3, 3], [4, 0]]
         expect(editor.getText()).toBe '125\nab47\ncd-65ef\nab-3\na-bcdef'
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it "can have a count", ->
         keydown '5'
         keydown 'a', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 4], [3, 2], [4, 0]]
         expect(editor.getText()).toBe '128\nab50\ncd-62ef\nab0\na-bcdef'
 
       it "can have a count", ->
         keydown '5'
         keydown 'a', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 4], [3, 2], [4, 0]]
         expect(editor.getText()).toBe '128\nab50\ncd-62ef\nab0\na-bcdef'
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it "can make a negative number positive, change number of digits", ->
         keydown '9'
 
       it "can make a negative number positive, change number of digits", ->
         keydown '9'
@@ -1669,12 +2097,14 @@ describe "Operators", ->
         keydown 'a', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 4], [2, 3], [3, 3], [4, 0]]
         expect(editor.getText()).toBe '222\nab144\ncd32ef\nab94\na-bcdef'
         keydown 'a', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 4], [2, 3], [3, 3], [4, 0]]
         expect(editor.getText()).toBe '222\nab144\ncd32ef\nab94\na-bcdef'
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it "does nothing when cursor is after the number", ->
         editor.setCursorBufferPosition [2, 5]
         keydown 'a', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[2, 5]]
         expect(editor.getText()).toBe '123\nab45\ncd-67ef\nab-5\na-bcdef'
 
       it "does nothing when cursor is after the number", ->
         editor.setCursorBufferPosition [2, 5]
         keydown 'a', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[2, 5]]
         expect(editor.getText()).toBe '123\nab45\ncd-67ef\nab-5\na-bcdef'
+        expect(atom.beep).toHaveBeenCalled()
 
       it "does nothing on an empty line", ->
         editor.setText('\n')
 
       it "does nothing on an empty line", ->
         editor.setText('\n')
@@ -1683,6 +2113,7 @@ describe "Operators", ->
         keydown 'a', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[0, 0], [1, 0]]
         expect(editor.getText()).toBe '\n'
         keydown 'a', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[0, 0], [1, 0]]
         expect(editor.getText()).toBe '\n'
+        expect(atom.beep).toHaveBeenCalled()
 
       it "honours the vim-mode:numberRegex setting", ->
         editor.setText('123\nab45\ncd -67ef\nab-5\na-bcdef')
 
       it "honours the vim-mode:numberRegex setting", ->
         editor.setText('123\nab45\ncd -67ef\nab-5\na-bcdef')
@@ -1695,24 +2126,28 @@ describe "Operators", ->
         keydown('a', ctrl: true)
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 5], [3, 3], [4, 0]]
         expect(editor.getText()).toBe '124\nab46\ncd -66ef\nab-6\na-bcdef'
         keydown('a', ctrl: true)
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 5], [3, 3], [4, 0]]
         expect(editor.getText()).toBe '124\nab46\ncd -66ef\nab-6\na-bcdef'
+        expect(atom.beep).not.toHaveBeenCalled()
 
     describe "decreasing numbers", ->
       it "decreases the next number", ->
         keydown('x', ctrl: true)
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 4], [3, 3], [4, 0]]
         expect(editor.getText()).toBe '122\nab44\ncd-68ef\nab-6\na-bcdef'
 
     describe "decreasing numbers", ->
       it "decreases the next number", ->
         keydown('x', ctrl: true)
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 4], [3, 3], [4, 0]]
         expect(editor.getText()).toBe '122\nab44\ncd-68ef\nab-6\na-bcdef'
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it "repeats with .", ->
         keydown 'x', ctrl: true
         keydown '.'
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 4], [3, 3], [4, 0]]
         expect(editor.getText()).toBe '121\nab43\ncd-69ef\nab-7\na-bcdef'
 
       it "repeats with .", ->
         keydown 'x', ctrl: true
         keydown '.'
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 4], [3, 3], [4, 0]]
         expect(editor.getText()).toBe '121\nab43\ncd-69ef\nab-7\na-bcdef'
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it "can have a count", ->
         keydown '5'
         keydown 'x', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 4], [3, 4], [4, 0]]
         expect(editor.getText()).toBe '118\nab40\ncd-72ef\nab-10\na-bcdef'
 
       it "can have a count", ->
         keydown '5'
         keydown 'x', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 4], [3, 4], [4, 0]]
         expect(editor.getText()).toBe '118\nab40\ncd-72ef\nab-10\na-bcdef'
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it "can make a positive number negative, change number of digits", ->
         keydown '9'
 
       it "can make a positive number negative, change number of digits", ->
         keydown '9'
@@ -1720,12 +2155,14 @@ describe "Operators", ->
         keydown 'x', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[0, 1], [1, 4], [2, 5], [3, 5], [4, 0]]
         expect(editor.getText()).toBe '24\nab-54\ncd-166ef\nab-104\na-bcdef'
         keydown 'x', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[0, 1], [1, 4], [2, 5], [3, 5], [4, 0]]
         expect(editor.getText()).toBe '24\nab-54\ncd-166ef\nab-104\na-bcdef'
+        expect(atom.beep).not.toHaveBeenCalled()
 
       it "does nothing when cursor is after the number", ->
         editor.setCursorBufferPosition [2, 5]
         keydown 'x', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[2, 5]]
         expect(editor.getText()).toBe '123\nab45\ncd-67ef\nab-5\na-bcdef'
 
       it "does nothing when cursor is after the number", ->
         editor.setCursorBufferPosition [2, 5]
         keydown 'x', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[2, 5]]
         expect(editor.getText()).toBe '123\nab45\ncd-67ef\nab-5\na-bcdef'
+        expect(atom.beep).toHaveBeenCalled()
 
       it "does nothing on an empty line", ->
         editor.setText('\n')
 
       it "does nothing on an empty line", ->
         editor.setText('\n')
@@ -1734,6 +2171,7 @@ describe "Operators", ->
         keydown 'x', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[0, 0], [1, 0]]
         expect(editor.getText()).toBe '\n'
         keydown 'x', ctrl: true
         expect(editor.getCursorBufferPositions()).toEqual [[0, 0], [1, 0]]
         expect(editor.getText()).toBe '\n'
+        expect(atom.beep).toHaveBeenCalled()
 
       it "honours the vim-mode:numberRegex setting", ->
         editor.setText('123\nab45\ncd -67ef\nab-5\na-bcdef')
 
       it "honours the vim-mode:numberRegex setting", ->
         editor.setText('123\nab45\ncd -67ef\nab-5\na-bcdef')
@@ -1746,3 +2184,101 @@ describe "Operators", ->
         keydown('x', ctrl: true)
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 5], [3, 3], [4, 0]]
         expect(editor.getText()).toBe '122\nab44\ncd -68ef\nab-4\na-bcdef'
         keydown('x', ctrl: true)
         expect(editor.getCursorBufferPositions()).toEqual [[0, 2], [1, 3], [2, 5], [3, 3], [4, 0]]
         expect(editor.getText()).toBe '122\nab44\ncd -68ef\nab-4\na-bcdef'
+        expect(atom.beep).not.toHaveBeenCalled()
+
+  describe 'the R keybinding', ->
+    beforeEach ->
+      editor.setText('12345\n67890')
+      editor.setCursorBufferPosition([0, 2])
+
+    it "enters replace mode and replaces characters", ->
+      keydown "R", shift: true
+      expect(editorElement.classList.contains('insert-mode')).toBe true
+      expect(editorElement.classList.contains('replace-mode')).toBe true
+
+      editor.insertText "ab"
+      keydown 'escape'
+
+      expect(editor.getText()).toBe "12ab5\n67890"
+      expect(editor.getCursorScreenPosition()).toEqual [0, 3]
+      expect(editorElement.classList.contains('insert-mode')).toBe false
+      expect(editorElement.classList.contains('replace-mode')).toBe false
+      expect(editorElement.classList.contains('normal-mode')).toBe true
+
+    it "continues beyond end of line as insert", ->
+      keydown "R", shift: true
+      expect(editorElement.classList.contains('insert-mode')).toBe true
+      expect(editorElement.classList.contains('replace-mode')).toBe true
+
+      editor.insertText "abcde"
+      keydown 'escape'
+
+      expect(editor.getText()).toBe "12abcde\n67890"
+
+    it "treats backspace as undo", ->
+      editor.insertText "foo"
+      keydown "R", shift: true
+
+      editor.insertText "a"
+      editor.insertText "b"
+      expect(editor.getText()).toBe "12fooab5\n67890"
+
+      keydown 'backspace', raw: true
+      expect(editor.getText()).toBe "12fooa45\n67890"
+
+      editor.insertText "c"
+
+      expect(editor.getText()).toBe "12fooac5\n67890"
+
+      keydown 'backspace', raw: true
+      keydown 'backspace', raw: true
+
+      expect(editor.getText()).toBe "12foo345\n67890"
+      expect(editor.getSelectedText()).toBe ""
+
+      keydown 'backspace', raw: true
+      expect(editor.getText()).toBe "12foo345\n67890"
+      expect(editor.getSelectedText()).toBe ""
+
+    it "can be repeated", ->
+      keydown "R", shift: true
+      editor.insertText "ab"
+      keydown 'escape'
+      editor.setCursorBufferPosition([1, 2])
+      keydown '.'
+      expect(editor.getText()).toBe "12ab5\n67ab0"
+      expect(editor.getCursorScreenPosition()).toEqual [1, 3]
+
+      editor.setCursorBufferPosition([0, 4])
+      keydown '.'
+      expect(editor.getText()).toBe "12abab\n67ab0"
+      expect(editor.getCursorScreenPosition()).toEqual [0, 5]
+
+    it "can be interrupted by arrow keys and behave as insert for repeat", ->
+      # FIXME don't know how to test this (also, depends on PR #568)
+
+    it "repeats correctly when backspace was used in the text", ->
+      keydown "R", shift: true
+      editor.insertText "a"
+      keydown 'backspace', raw: true
+      editor.insertText "b"
+      keydown 'escape'
+      editor.setCursorBufferPosition([1, 2])
+      keydown '.'
+      expect(editor.getText()).toBe "12b45\n67b90"
+      expect(editor.getCursorScreenPosition()).toEqual [1, 2]
+
+      editor.setCursorBufferPosition([0, 4])
+      keydown '.'
+      expect(editor.getText()).toBe "12b4b\n67b90"
+      expect(editor.getCursorScreenPosition()).toEqual [0, 4]
+
+    it "doesn't replace a character if newline is entered", ->
+      keydown "R", shift: true
+      expect(editorElement.classList.contains('insert-mode')).toBe true
+      expect(editorElement.classList.contains('replace-mode')).toBe true
+
+      editor.insertText "\n"
+      keydown 'escape'
+
+      expect(editor.getText()).toBe "12\n345\n67890"
index e782d20ad096640e431f6e2e6a0b6914030aaf23..71c4a12c040eea856cac14081ed2980ed22e7911 100644 (file)
@@ -11,8 +11,8 @@ describe "Prefixes", ->
       editorElement = element
       editor = editorElement.getModel()
       vimState = editorElement.vimState
       editorElement = element
       editor = editorElement.getModel()
       vimState = editorElement.vimState
-      vimState.activateCommandMode()
-      vimState.resetCommandMode()
+      vimState.activateNormalMode()
+      vimState.resetNormalMode()
 
   keydown = (key, options={}) ->
     options.element ?= editorElement
 
   keydown = (key, options={}) ->
     options.element ?= editorElement
@@ -146,3 +146,37 @@ describe "Prefixes", ->
         it "throws away anything written to it", ->
           vimState.setRegister('%', "new content")
           expect(vimState.getRegister('%').text).toEqual '/Users/atom/known_value.txt'
         it "throws away anything written to it", ->
           vimState.setRegister('%', "new content")
           expect(vimState.getRegister('%').text).toEqual '/Users/atom/known_value.txt'
+
+    describe "the ctrl-r command in insert mode", ->
+      beforeEach ->
+        editor.setText "02\n"
+        editor.setCursorScreenPosition [0, 0]
+        vimState.setRegister('"', text: '345')
+        vimState.setRegister('a', text: 'abc')
+        atom.clipboard.write "clip"
+        keydown 'a'
+        editor.insertText '1'
+
+      it "inserts contents of the unnamed register with \"", ->
+        keydown 'r', ctrl: true
+        keydown '"'
+        expect(editor.getText()).toBe '013452\n'
+
+      describe "when useClipboardAsDefaultRegister enabled", ->
+        it "inserts contents from clipboard with \"", ->
+          atom.config.set 'vim-mode.useClipboardAsDefaultRegister', true
+          keydown 'r', ctrl: true
+          keydown '"'
+          expect(editor.getText()).toBe '01clip2\n'
+
+      it "inserts contents of the 'a' register", ->
+        keydown 'r', ctrl: true
+        keydown 'a'
+        expect(editor.getText()).toBe '01abc2\n'
+
+      it "is cancelled with the escape key", ->
+        keydown 'r', ctrl: true
+        keydown 'escape'
+        expect(editor.getText()).toBe '012\n'
+        expect(vimState.mode).toBe "insert"
+        expect(editor.getCursorScreenPosition()).toEqual [0, 2]
index 947319394e13bccb44f6718c6cc1c867f4512996..ebe400ae08847349973ae0fbb3677b186b94e95c 100644 (file)
@@ -11,8 +11,8 @@ describe "Scrolling", ->
       editorElement = element
       editor = editorElement.getModel()
       vimState = editorElement.vimState
       editorElement = element
       editor = editorElement.getModel()
       vimState = editorElement.vimState
-      vimState.activateCommandMode()
-      vimState.resetCommandMode()
+      vimState.activateNormalMode()
+      vimState.resetNormalMode()
 
   keydown = (key, options={}) ->
     options.element ?= editorElement
 
   keydown = (key, options={}) ->
     options.element ?= editorElement
@@ -120,3 +120,111 @@ describe "Scrolling", ->
         keydown('b')
         expect(editor.setScrollTop).toHaveBeenCalledWith(860)
         expect(editor.moveToFirstCharacterOfLine).not.toHaveBeenCalled()
         keydown('b')
         expect(editor.setScrollTop).toHaveBeenCalledWith(860)
         expect(editor.moveToFirstCharacterOfLine).not.toHaveBeenCalled()
+
+  describe "horizontal scroll cursor keybindings", ->
+    beforeEach ->
+      editor.setWidth(600)
+      editor.setLineHeightInPixels(10)
+      editor.setDefaultCharWidth(10)
+      text = ""
+      for i in [100..199]
+        text += "#{i} "
+      editor.setText(text)
+      editor.setCursorBufferPosition([0, 0])
+
+    describe "the zs keybinding", ->
+      zsPos = (pos) ->
+        editor.setCursorBufferPosition([0, pos])
+        keydown('z')
+        keydown('s')
+        editor.getScrollLeft()
+
+      startPosition = NaN
+
+      beforeEach ->
+        startPosition = editor.getScrollLeft()
+
+      it "does nothing near the start of the line", ->
+        pos1 = zsPos(1)
+        expect(pos1).toEqual(startPosition)
+
+      it "moves the cursor the nearest it can to the left edge of the editor", ->
+        pos10 = zsPos(10)
+        expect(pos10).toBeGreaterThan(startPosition)
+
+        pos11 = zsPos(11)
+        expect(pos11 - pos10).toEqual(10)
+
+      it "does nothing near the end of the line", ->
+        posEnd = zsPos(399)
+        expect(editor.getCursorBufferPosition()).toEqual [0, 399]
+
+        pos390 = zsPos(390)
+        expect(pos390).toEqual(posEnd)
+        expect(editor.getCursorBufferPosition()).toEqual [0, 390]
+
+        pos340 = zsPos(340)
+        expect(pos340).toBeLessThan(posEnd)
+        pos342 = zsPos(342)
+        expect(pos342 - pos340).toEqual(20)
+
+      it "does nothing if all lines are short", ->
+        editor.setText('short')
+        startPosition = editor.getScrollLeft()
+        pos1 = zsPos(1)
+        expect(pos1).toEqual(startPosition)
+        expect(editor.getCursorBufferPosition()).toEqual [0, 1]
+        pos10 = zsPos(10)
+        expect(pos10).toEqual(startPosition)
+        expect(editor.getCursorBufferPosition()).toEqual [0, 4]
+
+
+    describe "the ze keybinding", ->
+      zePos = (pos) ->
+        editor.setCursorBufferPosition([0, pos])
+        keydown('z')
+        keydown('e')
+        editor.getScrollLeft()
+
+      startPosition = NaN
+
+      beforeEach ->
+        startPosition = editor.getScrollLeft()
+
+      it "does nothing near the start of the line", ->
+        pos1 = zePos(1)
+        expect(pos1).toEqual(startPosition)
+
+        pos40 = zePos(40)
+        expect(pos40).toEqual(startPosition)
+
+      it "moves the cursor the nearest it can to the right edge of the editor", ->
+        pos110 = zePos(110)
+        expect(pos110).toBeGreaterThan(startPosition)
+
+        pos109 = zePos(109)
+        expect(pos110 - pos109).toEqual(10)
+
+      it "does nothing when very near the end of the line", ->
+        posEnd = zePos(399)
+        expect(editor.getCursorBufferPosition()).toEqual [0, 399]
+
+        pos397 = zePos(397)
+        expect(pos397).toEqual(posEnd)
+        expect(editor.getCursorBufferPosition()).toEqual [0, 397]
+
+        pos380 = zePos(380)
+        expect(pos380).toBeLessThan(posEnd)
+
+        pos382 = zePos(382)
+        expect(pos382 - pos380).toEqual(20)
+
+      it "does nothing if all lines are short", ->
+        editor.setText('short')
+        startPosition = editor.getScrollLeft()
+        pos1 = zePos(1)
+        expect(pos1).toEqual(startPosition)
+        expect(editor.getCursorBufferPosition()).toEqual [0, 1]
+        pos10 = zePos(10)
+        expect(pos10).toEqual(startPosition)
+        expect(editor.getCursorBufferPosition()).toEqual [0, 4]
index 88ba4b26588f59566f5fc5d22a5da5861d5e602a..7cff2fc8f22f31eedc075331277b996bbddd977f 100644 (file)
@@ -3,8 +3,13 @@ GlobalVimState = require '../lib/global-vim-state'
 VimMode  = require '../lib/vim-mode'
 StatusBarManager = require '../lib/status-bar-manager'
 
 VimMode  = require '../lib/vim-mode'
 StatusBarManager = require '../lib/status-bar-manager'
 
+[globalVimState, statusBarManager] = []
+
 beforeEach ->
   atom.workspace ||= {}
 beforeEach ->
   atom.workspace ||= {}
+  statusBarManager = null
+  globalVimState = null
+  spyOn(atom, 'beep')
 
 getEditorElement = (callback) ->
   textEditor = null
 
 getEditorElement = (callback) ->
   textEditor = null
@@ -17,11 +22,16 @@ getEditorElement = (callback) ->
     element = document.createElement("atom-text-editor")
     element.setModel(textEditor)
     element.classList.add('vim-mode')
     element = document.createElement("atom-text-editor")
     element.setModel(textEditor)
     element.classList.add('vim-mode')
-    element.vimState = new VimState(element, new StatusBarManager, new GlobalVimState)
+    statusBarManager ?= new StatusBarManager
+    globalVimState ?= new GlobalVimState
+    element.vimState = new VimState(element, statusBarManager, globalVimState)
 
     element.addEventListener "keydown", (e) ->
       atom.keymaps.handleKeyboardEvent(e)
 
 
     element.addEventListener "keydown", (e) ->
       atom.keymaps.handleKeyboardEvent(e)
 
+    # mock parent element for the text editor
+    document.createElement('html').appendChild(atom.views.getView(textEditor))
+
     callback(element)
 
 mockPlatform = (editorElement, platform) ->
     callback(element)
 
 mockPlatform = (editorElement, platform) ->
index 6991dc7e055f1a36a72614ef6206edf218ed7b15..92b4a7a67dea616516b422c3b7c0ff1fe6b4d3e5 100644 (file)
@@ -11,15 +11,23 @@ describe "TextObjects", ->
       editorElement = element
       editor = editorElement.getModel()
       vimState = editorElement.vimState
       editorElement = element
       editor = editorElement.getModel()
       vimState = editorElement.vimState
-      vimState.activateCommandMode()
-      vimState.resetCommandMode()
+      vimState.activateNormalMode()
+      vimState.resetNormalMode()
 
   keydown = (key, options={}) ->
     options.element ?= editorElement
     helpers.keydown(key, options)
 
 
   keydown = (key, options={}) ->
     options.element ?= editorElement
     helpers.keydown(key, options)
 
-  commandModeInputKeydown = (key, opts = {}) ->
-    editor.commandModeInputView.editorElement.getModel().setText(key)
+  describe "Text Object commands in normal mode not preceded by an operator", ->
+    beforeEach ->
+      vimState.activateNormalMode()
+
+    it "selects the appropriate text", ->
+      editor.setText("<html> text </html>")
+      editor.setCursorScreenPosition([0, 7])
+      # Users could dispatch it via the command palette
+      atom.commands.dispatch(editorElement, "vim-mode:select-inside-tags")
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 6], [0, 12]]
 
   describe "the 'iw' text object", ->
     beforeEach ->
 
   describe "the 'iw' text object", ->
     beforeEach ->
@@ -35,7 +43,7 @@ describe "TextObjects", ->
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
       expect(vimState.getRegister('"').text).toBe "abcde"
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
       expect(vimState.getRegister('"').text).toBe "abcde"
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "selects inside the current word in visual mode", ->
       keydown('v')
 
     it "selects inside the current word in visual mode", ->
       keydown('v')
@@ -44,6 +52,16 @@ describe "TextObjects", ->
 
       expect(editor.getSelectedScreenRange()).toEqual [[0, 6], [0, 11]]
 
 
       expect(editor.getSelectedScreenRange()).toEqual [[0, 6], [0, 11]]
 
+    it "expands an existing selection in visual mode", ->
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('i')
+      keydown('w')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 9], [0, 17]]
+
     it "works with multiple cursors", ->
       editor.addCursorAtBufferPosition([0, 1])
       keydown("v")
     it "works with multiple cursors", ->
       editor.addCursorAtBufferPosition([0, 1])
       keydown("v")
@@ -54,6 +72,39 @@ describe "TextObjects", ->
         [[0, 0], [0, 5]]
       ]
 
         [[0, 0], [0, 5]]
       ]
 
+  describe "the 'iW' text object", ->
+    beforeEach ->
+      editor.setText("12(45 ab'de ABCDE")
+      editor.setCursorScreenPosition([0, 9])
+
+    it "applies operators inside the current whole word in operator-pending mode", ->
+      keydown('d')
+      keydown('i')
+      keydown('W', shift: true)
+
+      expect(editor.getText()).toBe "12(45  ABCDE"
+      expect(editor.getCursorScreenPosition()).toEqual [0, 6]
+      expect(vimState.getRegister('"').text).toBe "ab'de"
+      expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+
+    it "selects inside the current whole word in visual mode", ->
+      keydown('v')
+      keydown('i')
+      keydown('W', shift: true)
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 6], [0, 11]]
+
+    it "expands an existing selection in visual mode", ->
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('i')
+      keydown('W', shift: true)
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 9], [0, 17]]
+
   describe "the 'i(' text object", ->
     beforeEach ->
       editor.setText("( something in here and in (here) )")
   describe "the 'i(' text object", ->
     beforeEach ->
       editor.setText("( something in here and in (here) )")
@@ -66,7 +117,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "()"
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "()"
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "applies operators inside the current word in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
 
     it "applies operators inside the current word in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
@@ -76,7 +127,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "( something in here and in () )"
       expect(editor.getCursorScreenPosition()).toEqual [0, 28]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "( something in here and in () )"
       expect(editor.getCursorScreenPosition()).toEqual [0, 28]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "works with multiple cursors", ->
       editor.setText("( a b ) cde ( f g h ) ijk")
 
     it "works with multiple cursors", ->
       editor.setText("( a b ) cde ( f g h ) ijk")
@@ -92,6 +143,18 @@ describe "TextObjects", ->
         [[0, 13], [0, 20]]
       ]
 
         [[0, 13], [0, 20]]
       ]
 
+    it "expands an existing selection in visual mode", ->
+      editor.setCursorScreenPosition([0, 25])
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('i')
+      keydown('(')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 25], [0, 32]]
+
   describe "the 'i{' text object", ->
     beforeEach ->
       editor.setText("{ something in here and in {here} }")
   describe "the 'i{' text object", ->
     beforeEach ->
       editor.setText("{ something in here and in {here} }")
@@ -104,7 +167,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "{}"
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "{}"
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "applies operators inside the current word in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
 
     it "applies operators inside the current word in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
@@ -114,7 +177,19 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "{ something in here and in {} }"
       expect(editor.getCursorScreenPosition()).toEqual [0, 28]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "{ something in here and in {} }"
       expect(editor.getCursorScreenPosition()).toEqual [0, 28]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+
+    it "expands an existing selection in visual mode", ->
+      editor.setCursorScreenPosition([0, 25])
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('i')
+      keydown('{')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 25], [0, 32]]
 
   describe "the 'i<' text object", ->
     beforeEach ->
 
   describe "the 'i<' text object", ->
     beforeEach ->
@@ -128,7 +203,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "<>"
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "<>"
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "applies operators inside the current word in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
 
     it "applies operators inside the current word in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
@@ -138,7 +213,19 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "< something in here and in <> >"
       expect(editor.getCursorScreenPosition()).toEqual [0, 28]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "< something in here and in <> >"
       expect(editor.getCursorScreenPosition()).toEqual [0, 28]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+
+    it "expands an existing selection in visual mode", ->
+      editor.setCursorScreenPosition([0, 25])
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('i')
+      keydown('<')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 25], [0, 32]]
 
   describe "the 'it' text object", ->
     beforeEach ->
 
   describe "the 'it' text object", ->
     beforeEach ->
@@ -152,7 +239,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "<something>here</something><again>"
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "<something>here</something><again>"
       expect(editor.getCursorScreenPosition()).toEqual [0, 5]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "applies operators inside the current word in operator-pending mode", ->
       editor.setCursorScreenPosition([0, 13])
 
     it "applies operators inside the current word in operator-pending mode", ->
       editor.setCursorScreenPosition([0, 13])
@@ -162,15 +249,24 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "<something></something><again>"
       expect(editor.getCursorScreenPosition()).toEqual [0, 11]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "<something></something><again>"
       expect(editor.getCursorScreenPosition()).toEqual [0, 11]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+
+    it "expands an existing selection in visual mode", ->
+      editor.setCursorScreenPosition([0, 7])
+      keydown('v')
+      keydown('6')
+      keydown('l')
+      keydown('i')
+      keydown('t')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 7], [0, 15]]
 
   describe "the 'ip' text object", ->
     beforeEach ->
       editor.setText("\nParagraph-1\nParagraph-1\nParagraph-1\n\n")
 
   describe "the 'ip' text object", ->
     beforeEach ->
       editor.setText("\nParagraph-1\nParagraph-1\nParagraph-1\n\n")
-      editor.setCursorScreenPosition([2, 2])
+      editor.setCursorBufferPosition([2, 2])
 
     it "applies operators inside the current paragraph in operator-pending mode", ->
 
     it "applies operators inside the current paragraph in operator-pending mode", ->
-
       keydown('y')
       keydown('i')
       keydown('p')
       keydown('y')
       keydown('i')
       keydown('p')
@@ -179,7 +275,7 @@ describe "TextObjects", ->
       expect(editor.getCursorScreenPosition()).toEqual [1, 0]
       expect(vimState.getRegister('"').text).toBe "Paragraph-1\nParagraph-1\nParagraph-1\n"
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getCursorScreenPosition()).toEqual [1, 0]
       expect(vimState.getRegister('"').text).toBe "Paragraph-1\nParagraph-1\nParagraph-1\n"
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "selects inside the current paragraph in visual mode", ->
       keydown('v')
 
     it "selects inside the current paragraph in visual mode", ->
       keydown('v')
@@ -188,30 +284,105 @@ describe "TextObjects", ->
 
       expect(editor.getSelectedScreenRange()).toEqual [[1, 0], [4, 0]]
 
 
       expect(editor.getSelectedScreenRange()).toEqual [[1, 0], [4, 0]]
 
+    it "selects between paragraphs in visual mode if invoked on a empty line", ->
+      editor.setText("text\n\n\n\ntext\n")
+      editor.setCursorBufferPosition([1, 0])
+
+      keydown('v')
+      keydown('i')
+      keydown('p')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[1, 0], [4, 0]]
+
+    it "selects all the lines", ->
+      editor.setText("text\ntext\ntext\n")
+      editor.setCursorBufferPosition([0, 0])
+
+      keydown('v')
+      keydown('i')
+      keydown('p')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 0], [3, 0]]
+
+    it "expands an existing selection in visual mode", ->
+      editor.setText("\nParagraph-1\nParagraph-1\nParagraph-1\n\n\nParagraph-2\nParagraph-2\nParagraph-2\n")
+      editor.setCursorBufferPosition([2, 2])
+
+      keydown('v')
+      keydown('i')
+      keydown('p')
+
+      keydown('j')
+      keydown('j')
+      keydown('j')
+      keydown('i')
+      keydown('p')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[1, 0], [9, 0]]
+
   describe "the 'ap' text object", ->
     beforeEach ->
   describe "the 'ap' text object", ->
     beforeEach ->
-      editor.setText("text\n\nParagraph-1\nParagraph-1\nParagraph-1\n\nmoretext")
+      editor.setText("text\n\nParagraph-1\nParagraph-1\nParagraph-1\n\n\nmoretext")
       editor.setCursorScreenPosition([3, 2])
 
     it "applies operators around the current paragraph in operator-pending mode", ->
       editor.setCursorScreenPosition([3, 2])
 
     it "applies operators around the current paragraph in operator-pending mode", ->
-
       keydown('y')
       keydown('a')
       keydown('p')
 
       keydown('y')
       keydown('a')
       keydown('p')
 
-      expect(editor.getText()).toBe "text\n\nParagraph-1\nParagraph-1\nParagraph-1\n\nmoretext"
+      expect(editor.getText()).toBe "text\n\nParagraph-1\nParagraph-1\nParagraph-1\n\n\nmoretext"
       expect(editor.getCursorScreenPosition()).toEqual [2, 0]
       expect(editor.getCursorScreenPosition()).toEqual [2, 0]
-      expect(vimState.getRegister('"').text).toBe "Paragraph-1\nParagraph-1\nParagraph-1\n\n"
+      expect(vimState.getRegister('"').text).toBe "Paragraph-1\nParagraph-1\nParagraph-1\n\n\n"
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "selects around the current paragraph in visual mode", ->
       keydown('v')
       keydown('a')
       keydown('p')
 
 
     it "selects around the current paragraph in visual mode", ->
       keydown('v')
       keydown('a')
       keydown('p')
 
-      expect(editor.getSelectedScreenRange()).toEqual [[2, 0], [6, 0]]
-      
+      expect(editor.getSelectedScreenRange()).toEqual [[2, 0], [7, 0]]
+
+    it "applies operators around the next paragraph in operator-pending mode when started from a blank/only-whitespace line", ->
+      editor.setText("text\n\n\n\nParagraph-1\nParagraph-1\nParagraph-1\n\n\nmoretext")
+      editor.setCursorBufferPosition([1, 0])
+
+      keydown('y')
+      keydown('a')
+      keydown('p')
+
+      expect(editor.getText()).toBe "text\n\n\n\nParagraph-1\nParagraph-1\nParagraph-1\n\n\nmoretext"
+      expect(editor.getCursorScreenPosition()).toEqual [1, 0]
+      expect(vimState.getRegister('"').text).toBe "\n\n\nParagraph-1\nParagraph-1\nParagraph-1\n"
+      expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+
+    it "selects around the next paragraph in visual mode when started from a blank/only-whitespace line", ->
+      editor.setText("text\n\n\n\nparagraph-1\nparagraph-1\nparagraph-1\n\n\nmoretext")
+      editor.setCursorBufferPosition([1, 0])
+
+      keydown('v')
+      keydown('a')
+      keydown('p')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[1, 0], [7, 0]]
+
+    it "expands an existing selection in visual mode", ->
+      editor.setText("text\n\n\n\nparagraph-1\nparagraph-1\nparagraph-1\n\n\n\nparagraph-2\nparagraph-2\nparagraph-2\n\n\nmoretext")
+      editor.setCursorBufferPosition([5, 0])
+
+      keydown('v')
+      keydown('a')
+      keydown('p')
+
+      keydown('j')
+      keydown('j')
+      keydown('j')
+      keydown('i')
+      keydown('p')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[4, 0], [13, 0]]
+
   describe "the 'i[' text object", ->
     beforeEach ->
       editor.setText("[ something in here and in [here] ]")
   describe "the 'i[' text object", ->
     beforeEach ->
       editor.setText("[ something in here and in [here] ]")
@@ -224,7 +395,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "[]"
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "[]"
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "applies operators inside the current word in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
 
     it "applies operators inside the current word in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
@@ -234,7 +405,19 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "[ something in here and in [] ]"
       expect(editor.getCursorScreenPosition()).toEqual [0, 28]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "[ something in here and in [] ]"
       expect(editor.getCursorScreenPosition()).toEqual [0, 28]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+
+    it "expands an existing selection in visual mode", ->
+      editor.setCursorScreenPosition([0, 25])
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('i')
+      keydown('[')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 25], [0, 32]]
 
   describe "the 'i\'' text object", ->
     beforeEach ->
 
   describe "the 'i\'' text object", ->
     beforeEach ->
@@ -248,7 +431,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "''here' ' and over here"
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "''here' ' and over here"
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "applies operators inside the next string in operator-pending mode (if not in a string)", ->
       editor.setCursorScreenPosition([0, 29])
 
     it "applies operators inside the next string in operator-pending mode (if not in a string)", ->
       editor.setCursorScreenPosition([0, 29])
@@ -258,7 +441,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "' something in here and in 'here'' and over here"
       expect(editor.getCursorScreenPosition()).toEqual [0, 33]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "' something in here and in 'here'' and over here"
       expect(editor.getCursorScreenPosition()).toEqual [0, 33]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "makes no change if past the last string on a line", ->
       editor.setCursorScreenPosition([0, 39])
 
     it "makes no change if past the last string on a line", ->
       editor.setCursorScreenPosition([0, 39])
@@ -268,7 +451,19 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "' something in here and in 'here' ' and over here"
       expect(editor.getCursorScreenPosition()).toEqual [0, 39]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "' something in here and in 'here' ' and over here"
       expect(editor.getCursorScreenPosition()).toEqual [0, 39]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+
+    it "expands an existing selection in visual mode", ->
+      editor.setCursorScreenPosition([0, 25])
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('i')
+      keydown('\'')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 25], [0, 34]]
 
   describe "the 'i\"' text object", ->
     beforeEach ->
 
   describe "the 'i\"' text object", ->
     beforeEach ->
@@ -282,7 +477,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "\"\"here\" \" and over here"
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "\"\"here\" \" and over here"
       expect(editor.getCursorScreenPosition()).toEqual [0, 1]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "applies operators inside the next string in operator-pending mode (if not in a string)", ->
       editor.setCursorScreenPosition([0, 29])
 
     it "applies operators inside the next string in operator-pending mode (if not in a string)", ->
       editor.setCursorScreenPosition([0, 29])
@@ -292,7 +487,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "\" something in here and in \"here\"\" and over here"
       expect(editor.getCursorScreenPosition()).toEqual [0, 33]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "\" something in here and in \"here\"\" and over here"
       expect(editor.getCursorScreenPosition()).toEqual [0, 33]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "makes no change if past the last string on a line", ->
       editor.setCursorScreenPosition([0, 39])
 
     it "makes no change if past the last string on a line", ->
       editor.setCursorScreenPosition([0, 39])
@@ -303,6 +498,18 @@ describe "TextObjects", ->
       expect(editor.getCursorScreenPosition()).toEqual [0, 39]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
 
       expect(editor.getCursorScreenPosition()).toEqual [0, 39]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
 
+    it "expands an existing selection in visual mode", ->
+      editor.setCursorScreenPosition([0, 25])
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('i')
+      keydown('"')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 25], [0, 34]]
+
   describe "the 'aw' text object", ->
     beforeEach ->
       editor.setText("12345 abcde ABCDE")
   describe "the 'aw' text object", ->
     beforeEach ->
       editor.setText("12345 abcde ABCDE")
@@ -317,7 +524,7 @@ describe "TextObjects", ->
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
       expect(vimState.getRegister('"').text).toBe "abcde "
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getCursorScreenPosition()).toEqual [0, 6]
       expect(vimState.getRegister('"').text).toBe "abcde "
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "selects from the start of the current word to the start of the next word in visual mode", ->
       keydown('v')
 
     it "selects from the start of the current word to the start of the next word in visual mode", ->
       keydown('v')
@@ -326,6 +533,17 @@ describe "TextObjects", ->
 
       expect(editor.getSelectedScreenRange()).toEqual [[0, 6], [0, 12]]
 
 
       expect(editor.getSelectedScreenRange()).toEqual [[0, 6], [0, 12]]
 
+    it "expands an existing selection in visual mode", ->
+      editor.setCursorScreenPosition([0, 2])
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('a')
+      keydown('w')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 2], [0, 12]]
+
     it "doesn't span newlines", ->
       editor.setText("12345\nabcde ABCDE")
       editor.setCursorBufferPosition([0, 3])
     it "doesn't span newlines", ->
       editor.setText("12345\nabcde ABCDE")
       editor.setCursorBufferPosition([0, 3])
@@ -336,6 +554,60 @@ describe "TextObjects", ->
 
       expect(editor.getSelectedBufferRanges()).toEqual [[[0, 0], [0, 5]]]
 
 
       expect(editor.getSelectedBufferRanges()).toEqual [[[0, 0], [0, 5]]]
 
+    it "doesn't span special characters", ->
+      editor.setText("1(345\nabcde ABCDE")
+      editor.setCursorBufferPosition([0, 3])
+
+      keydown("v")
+      keydown("a")
+      keydown("w")
+
+      expect(editor.getSelectedBufferRanges()).toEqual [[[0, 2], [0, 5]]]
+
+  describe "the 'aW' text object", ->
+    beforeEach ->
+      editor.setText("12(45 ab'de ABCDE")
+      editor.setCursorScreenPosition([0, 9])
+
+    it "applies operators from the start of the current whole word to the start of the next whole word in operator-pending mode", ->
+      keydown('d')
+      keydown('a')
+      keydown('W', shift: true)
+
+      expect(editor.getText()).toBe "12(45 ABCDE"
+      expect(editor.getCursorScreenPosition()).toEqual [0, 6]
+      expect(vimState.getRegister('"').text).toBe "ab'de "
+      expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+
+    it "selects from the start of the current whole word to the start of the next whole word in visual mode", ->
+      keydown('v')
+      keydown('a')
+      keydown('W', shift: true)
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 6], [0, 12]]
+
+    it "expands an existing selection in visual mode", ->
+      editor.setCursorScreenPosition([0, 2])
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('a')
+      keydown('W', shift: true)
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 2], [0, 12]]
+
+    it "doesn't span newlines", ->
+      editor.setText("12(45\nab'de ABCDE")
+      editor.setCursorBufferPosition([0, 4])
+
+      keydown('v')
+      keydown('a')
+      keydown('W', shift: true)
+
+      expect(editor.getSelectedBufferRanges()).toEqual [[[0, 0], [0, 5]]]
+
   describe "the 'a(' text object", ->
     beforeEach ->
       editor.setText("( something in here and in (here) )")
   describe "the 'a(' text object", ->
     beforeEach ->
       editor.setText("( something in here and in (here) )")
@@ -348,7 +620,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe ""
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe ""
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "applies operators around the current parentheses in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
 
     it "applies operators around the current parentheses in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
@@ -358,7 +630,19 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "( something in here and in  )"
       expect(editor.getCursorScreenPosition()).toEqual [0, 27]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "( something in here and in  )"
       expect(editor.getCursorScreenPosition()).toEqual [0, 27]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+
+    it "expands an existing selection in visual mode", ->
+      editor.setCursorScreenPosition([0, 25])
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('a')
+      keydown('(')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 25], [0, 33]]
 
   describe "the 'a{' text object", ->
     beforeEach ->
 
   describe "the 'a{' text object", ->
     beforeEach ->
@@ -372,7 +656,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe ""
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe ""
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "applies operators around the current curly brackets in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
 
     it "applies operators around the current curly brackets in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
@@ -382,7 +666,19 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "{ something in here and in  }"
       expect(editor.getCursorScreenPosition()).toEqual [0, 27]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "{ something in here and in  }"
       expect(editor.getCursorScreenPosition()).toEqual [0, 27]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+
+    it "expands an existing selection in visual mode", ->
+      editor.setCursorScreenPosition([0, 25])
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('a')
+      keydown('{')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 25], [0, 33]]
 
   describe "the 'a<' text object", ->
     beforeEach ->
 
   describe "the 'a<' text object", ->
     beforeEach ->
@@ -396,7 +692,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe ""
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe ""
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "applies operators around the current angle brackets in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
 
     it "applies operators around the current angle brackets in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
@@ -406,7 +702,19 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "< something in here and in  >"
       expect(editor.getCursorScreenPosition()).toEqual [0, 27]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "< something in here and in  >"
       expect(editor.getCursorScreenPosition()).toEqual [0, 27]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+
+    it "expands an existing selection in visual mode", ->
+      editor.setCursorScreenPosition([0, 25])
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('a')
+      keydown('<')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 25], [0, 33]]
 
   describe "the 'a[' text object", ->
     beforeEach ->
 
   describe "the 'a[' text object", ->
     beforeEach ->
@@ -420,7 +728,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe ""
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe ""
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "applies operators around the current square brackets in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
 
     it "applies operators around the current square brackets in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
@@ -430,7 +738,19 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "[ something in here and in  ]"
       expect(editor.getCursorScreenPosition()).toEqual [0, 27]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "[ something in here and in  ]"
       expect(editor.getCursorScreenPosition()).toEqual [0, 27]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+
+    it "expands an existing selection in visual mode", ->
+      editor.setCursorScreenPosition([0, 25])
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('a')
+      keydown('[')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 25], [0, 33]]
 
   describe "the 'a\'' text object", ->
     beforeEach ->
 
   describe "the 'a\'' text object", ->
     beforeEach ->
@@ -444,7 +764,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "here' '"
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "here' '"
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "applies operators around the current single quotes in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
 
     it "applies operators around the current single quotes in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
@@ -454,7 +774,19 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "' something in here and in 'here"
       expect(editor.getCursorScreenPosition()).toEqual [0, 31]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "' something in here and in 'here"
       expect(editor.getCursorScreenPosition()).toEqual [0, 31]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+
+    it "expands an existing selection in visual mode", ->
+      editor.setCursorScreenPosition([0, 25])
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('a')
+      keydown('\'')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 25], [0, 35]]
 
   describe "the 'a\"' text object", ->
     beforeEach ->
 
   describe "the 'a\"' text object", ->
     beforeEach ->
@@ -468,7 +800,7 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe 'here" "'
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe 'here" "'
       expect(editor.getCursorScreenPosition()).toEqual [0, 0]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "applies operators around the current double quotes in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
 
     it "applies operators around the current double quotes in operator-pending mode (second test)", ->
       editor.setCursorScreenPosition([0, 29])
@@ -478,4 +810,16 @@ describe "TextObjects", ->
       expect(editor.getText()).toBe "\" something in here and in \"here"
       expect(editor.getCursorScreenPosition()).toEqual [0, 31]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
       expect(editor.getText()).toBe "\" something in here and in \"here"
       expect(editor.getCursorScreenPosition()).toEqual [0, 31]
       expect(editorElement.classList.contains('operator-pending-mode')).toBe(false)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+
+    it "expands an existing selection in visual mode", ->
+      editor.setCursorScreenPosition([0, 25])
+      keydown('v')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('l')
+      keydown('a')
+      keydown('"')
+
+      expect(editor.getSelectedScreenRange()).toEqual [[0, 25], [0, 35]]
index 0f4d8b874ee489add4ae134349c782be6ebdaf6f..280e5452e3c10415afbde1d8c598633aad1b433b 100644 (file)
@@ -18,15 +18,20 @@ describe "VimMode", ->
       editorElement = atom.views.getView(editor)
 
   describe ".activate", ->
       editorElement = atom.views.getView(editor)
 
   describe ".activate", ->
-    it "puts the editor in command-mode initially by default", ->
+    it "puts the editor in normal-mode initially by default", ->
       expect(editorElement.classList.contains('vim-mode')).toBe(true)
       expect(editorElement.classList.contains('vim-mode')).toBe(true)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "shows the current vim mode in the status bar", ->
 
     it "shows the current vim mode in the status bar", ->
-      statusBarTile = workspaceElement.querySelector("#status-bar-vim-mode")
-      expect(statusBarTile.textContent).toBe("Command")
-      atom.commands.dispatch(editorElement, "vim-mode:activate-insert-mode")
-      expect(statusBarTile.textContent).toBe("Insert")
+      statusBarTile = null
+
+      waitsFor ->
+        statusBarTile = workspaceElement.querySelector("#status-bar-vim-mode")
+
+      runs ->
+        expect(statusBarTile.textContent).toBe("Normal")
+        atom.commands.dispatch(editorElement, "vim-mode:activate-insert-mode")
+        expect(statusBarTile.textContent).toBe("Insert")
 
     it "doesn't register duplicate command listeners for editors", ->
       editor.setText("12345")
 
     it "doesn't register duplicate command listeners for editors", ->
       editor.setText("12345")
@@ -44,7 +49,7 @@ describe "VimMode", ->
     it "removes the vim classes from the editor", ->
       atom.packages.deactivatePackage('vim-mode')
       expect(editorElement.classList.contains("vim-mode")).toBe(false)
     it "removes the vim classes from the editor", ->
       atom.packages.deactivatePackage('vim-mode')
       expect(editorElement.classList.contains("vim-mode")).toBe(false)
-      expect(editorElement.classList.contains("command-mode")).toBe(false)
+      expect(editorElement.classList.contains("normal-mode")).toBe(false)
 
     it "removes the vim commands from the editor element", ->
       vimCommands = ->
 
     it "removes the vim commands from the editor element", ->
       vimCommands = ->
index 741c3712e7efd6e5b4573f54cc6834897e0d33f3..8fd3fb016fcfbd1f8c9a469b1b1af2fe2b7b7d1b 100644 (file)
@@ -14,20 +14,20 @@ describe "VimState", ->
       editorElement = element
       editor = editorElement.getModel()
       vimState = editorElement.vimState
       editorElement = element
       editor = editorElement.getModel()
       vimState = editorElement.vimState
-      vimState.activateCommandMode()
-      vimState.resetCommandMode()
+      vimState.activateNormalMode()
+      vimState.resetNormalMode()
 
   keydown = (key, options={}) ->
     options.element ?= editorElement
     helpers.keydown(key, options)
 
 
   keydown = (key, options={}) ->
     options.element ?= editorElement
     helpers.keydown(key, options)
 
-  commandModeInputKeydown = (key, opts = {}) ->
-    editor.commandModeInputView.editorElement.getModel().setText(key)
+  normalModeInputKeydown = (key, opts = {}) ->
+    editor.normalModeInputView.editorElement.getModel().setText(key)
 
   describe "initialization", ->
 
   describe "initialization", ->
-    it "puts the editor in command-mode initially by default", ->
+    it "puts the editor in normal-mode initially by default", ->
       expect(editorElement.classList.contains('vim-mode')).toBe(true)
       expect(editorElement.classList.contains('vim-mode')).toBe(true)
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
     it "puts the editor in insert-mode if startInInsertMode is true", ->
       atom.config.set 'vim-mode.startInInsertMode', true
 
     it "puts the editor in insert-mode if startInInsertMode is true", ->
       atom.config.set 'vim-mode.startInInsertMode', true
@@ -41,15 +41,15 @@ describe "VimState", ->
       expect(editorElement.component.isInputEnabled()).toBeTruthy()
 
     it "removes the mode classes from the editor", ->
       expect(editorElement.component.isInputEnabled()).toBeTruthy()
 
     it "removes the mode classes from the editor", ->
-      expect(editorElement.classList.contains("command-mode")).toBeTruthy()
+      expect(editorElement.classList.contains("normal-mode")).toBeTruthy()
       vimState.destroy()
       vimState.destroy()
-      expect(editorElement.classList.contains("command-mode")).toBeFalsy()
+      expect(editorElement.classList.contains("normal-mode")).toBeFalsy()
 
     it "is a noop when the editor is already destroyed", ->
       editorElement.getModel().destroy()
       vimState.destroy()
 
 
     it "is a noop when the editor is already destroyed", ->
       editorElement.getModel().destroy()
       vimState.destroy()
 
-  describe "command-mode", ->
+  describe "normal-mode", ->
     describe "when entering an insertable character", ->
       beforeEach -> keydown('\\')
 
     describe "when entering an insertable character", ->
       beforeEach -> keydown('\\')
 
@@ -86,12 +86,18 @@ describe "VimState", ->
         expect(editor.getCursors().length).toBe 1
 
     describe "the v keybinding", ->
         expect(editor.getCursors().length).toBe 1
 
     describe "the v keybinding", ->
-      beforeEach -> keydown('v')
+      beforeEach ->
+        editor.setText("012345\nabcdef")
+        editor.setCursorScreenPosition([0, 0])
+        keydown('v')
 
       it "puts the editor into visual characterwise mode", ->
         expect(editorElement.classList.contains('visual-mode')).toBe(true)
         expect(vimState.submode).toEqual 'characterwise'
 
       it "puts the editor into visual characterwise mode", ->
         expect(editorElement.classList.contains('visual-mode')).toBe(true)
         expect(vimState.submode).toEqual 'characterwise'
-        expect(editorElement.classList.contains('command-mode')).toBe(false)
+        expect(editorElement.classList.contains('normal-mode')).toBe(false)
+
+      it "selects the current character", ->
+        expect(editor.getLastSelection().getText()).toEqual '0'
 
     describe "the V keybinding", ->
       beforeEach ->
 
     describe "the V keybinding", ->
       beforeEach ->
@@ -102,33 +108,34 @@ describe "VimState", ->
       it "puts the editor into visual linewise mode", ->
         expect(editorElement.classList.contains('visual-mode')).toBe(true)
         expect(vimState.submode).toEqual 'linewise'
       it "puts the editor into visual linewise mode", ->
         expect(editorElement.classList.contains('visual-mode')).toBe(true)
         expect(vimState.submode).toEqual 'linewise'
-        expect(editorElement.classList.contains('command-mode')).toBe(false)
+        expect(editorElement.classList.contains('normal-mode')).toBe(false)
 
       it "selects the current line", ->
         expect(editor.getLastSelection().getText()).toEqual '012345\n'
 
     describe "the ctrl-v keybinding", ->
 
       it "selects the current line", ->
         expect(editor.getLastSelection().getText()).toEqual '012345\n'
 
     describe "the ctrl-v keybinding", ->
-      beforeEach -> keydown('v', ctrl: true)
+      beforeEach ->
+        editor.setText("012345\nabcdef")
+        editor.setCursorScreenPosition([0, 0])
+        keydown('v', ctrl: true)
 
 
-      it "puts the editor into visual characterwise mode", ->
+      it "puts the editor into visual blockwise mode", ->
         expect(editorElement.classList.contains('visual-mode')).toBe(true)
         expect(vimState.submode).toEqual 'blockwise'
         expect(editorElement.classList.contains('visual-mode')).toBe(true)
         expect(vimState.submode).toEqual 'blockwise'
-        expect(editorElement.classList.contains('command-mode')).toBe(false)
+        expect(editorElement.classList.contains('normal-mode')).toBe(false)
 
     describe "selecting text", ->
       beforeEach ->
 
     describe "selecting text", ->
       beforeEach ->
-        spyOn(_._, "now").andCallFake -> window.now
         editor.setText("abc def")
         editor.setText("abc def")
+        editor.setCursorScreenPosition([0, 0])
 
       it "puts the editor into visual mode", ->
 
       it "puts the editor into visual mode", ->
-        expect(vimState.mode).toEqual 'command'
-        editor.setSelectedBufferRanges([[[0, 0], [0, 3]]])
-
-        advanceClock(100)
+        expect(vimState.mode).toEqual 'normal'
+        atom.commands.dispatch(editorElement, "core:select-right")
 
         expect(vimState.mode).toEqual 'visual'
         expect(vimState.submode).toEqual 'characterwise'
 
         expect(vimState.mode).toEqual 'visual'
         expect(vimState.submode).toEqual 'characterwise'
-        expect(editor.getSelectedBufferRanges()).toEqual([[[0, 0], [0, 3]]])
+        expect(editor.getSelectedBufferRanges()).toEqual([[[0, 0], [0, 1]]])
 
       it "handles the editor being destroyed shortly after selecting text", ->
         editor.setSelectedBufferRanges([[[0, 0], [0, 3]]])
 
       it "handles the editor being destroyed shortly after selecting text", ->
         editor.setSelectedBufferRanges([[[0, 0], [0, 3]]])
@@ -136,27 +143,41 @@ describe "VimState", ->
         vimState.destroy()
         advanceClock(100)
 
         vimState.destroy()
         advanceClock(100)
 
+      it "handles native selection such as core:select-all", ->
+        atom.commands.dispatch(editorElement, "core:select-all")
+        expect(editor.getSelectedBufferRanges()).toEqual([[[0, 0], [0, 7]]])
+
     describe "the i keybinding", ->
       beforeEach -> keydown('i')
 
       it "puts the editor into insert mode", ->
         expect(editorElement.classList.contains('insert-mode')).toBe(true)
     describe "the i keybinding", ->
       beforeEach -> keydown('i')
 
       it "puts the editor into insert mode", ->
         expect(editorElement.classList.contains('insert-mode')).toBe(true)
-        expect(editorElement.classList.contains('command-mode')).toBe(false)
+        expect(editorElement.classList.contains('normal-mode')).toBe(false)
 
 
-    describe "with content", ->
-      beforeEach -> editor.setText("012345\n\nabcdef")
+    describe "the R keybinding", ->
+      beforeEach -> keydown('R', shift: true)
 
 
-      # FIXME: See atom/vim-mode#2
-      xdescribe "on a line with content", ->
-        beforeEach -> editor.setCursorScreenPosition([0, 6])
+      it "puts the editor into replace mode", ->
+        expect(editorElement.classList.contains('insert-mode')).toBe(true)
+        expect(editorElement.classList.contains('replace-mode')).toBe(true)
+        expect(editorElement.classList.contains('normal-mode')).toBe(false)
 
 
-        it "does not allow the cursor to be placed on the \n character", ->
+    describe "with content", ->
+      beforeEach ->
+        editor.setText("012345\n\nabcdef")
+        editor.setCursorScreenPosition([0, 0])
+
+      describe "on a line with content", ->
+        it "does not allow atom commands to place the cursor on the \\n character", ->
+          atom.commands.dispatch(editorElement, "editor:move-to-end-of-line")
           expect(editor.getCursorScreenPosition()).toEqual [0, 5]
 
       describe "on an empty line", ->
           expect(editor.getCursorScreenPosition()).toEqual [0, 5]
 
       describe "on an empty line", ->
-        beforeEach -> editor.setCursorScreenPosition([1, 0])
+        beforeEach ->
+          editor.setCursorScreenPosition([1, 0])
+          atom.commands.dispatch(editorElement, "editor:move-to-end-of-line")
 
 
-        it "allows the cursor to be placed on the \n character", ->
+        it "allows the cursor to be placed on the \\n character", ->
           expect(editor.getCursorScreenPosition()).toEqual [1, 0]
 
     describe 'with character-input operations', ->
           expect(editor.getCursorScreenPosition()).toEqual [1, 0]
 
     describe 'with character-input operations', ->
@@ -165,9 +186,9 @@ describe "VimState", ->
       it 'properly clears the opStack', ->
         keydown('d')
         keydown('r')
       it 'properly clears the opStack', ->
         keydown('d')
         keydown('r')
-        expect(vimState.mode).toBe 'command'
+        expect(vimState.mode).toBe 'normal'
         expect(vimState.opStack.length).toBe 0
         expect(vimState.opStack.length).toBe 0
-        atom.commands.dispatch(editor.commandModeInputView.editorElement, "core:cancel")
+        atom.commands.dispatch(editor.normalModeInputView.editorElement, "core:cancel")
         keydown('d')
         expect(editor.getText()).toBe '012345\nabcdef'
 
         keydown('d')
         expect(editor.getText()).toBe '012345\nabcdef'
 
@@ -193,25 +214,78 @@ describe "VimState", ->
           expect(editor.getCursorScreenPosition()).toEqual [1, 0]
 
       describe "on a line with content", ->
           expect(editor.getCursorScreenPosition()).toEqual [1, 0]
 
       describe "on a line with content", ->
-        beforeEach -> editor.setCursorScreenPosition([0, 6])
+        beforeEach ->
+          editor.setCursorScreenPosition([0, 0])
+          atom.commands.dispatch(editorElement, "editor:move-to-end-of-line")
+
+        it "allows the cursor to be placed on the \\n character", ->
+          expect(editor.getCursorScreenPosition()).toEqual [0, 6]
+
+    it "puts the editor into normal mode when <escape> is pressed", ->
+      keydown('escape')
+
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+      expect(editorElement.classList.contains('insert-mode')).toBe(false)
+      expect(editorElement.classList.contains('visual-mode')).toBe(false)
+
+    it "puts the editor into normal mode when <ctrl-c> is pressed", ->
+      helpers.mockPlatform(editorElement, 'platform-darwin')
+      keydown('c', ctrl: true)
+      helpers.unmockPlatform(editorElement)
+
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
+      expect(editorElement.classList.contains('insert-mode')).toBe(false)
+      expect(editorElement.classList.contains('visual-mode')).toBe(false)
+
+  describe "replace-mode", ->
+    describe "with content", ->
+      beforeEach -> editor.setText("012345\n\nabcdef")
+
+      describe "when cursor is in the middle of the line", ->
+        beforeEach ->
+          editor.setCursorScreenPosition([0, 3])
+          keydown('R', shift: true)
+
+        it "moves the cursor to the left when exiting replace mode", ->
+          keydown('escape')
+          expect(editor.getCursorScreenPosition()).toEqual [0, 2]
+
+      describe "when cursor is at the beginning of line", ->
+        beforeEach ->
+          editor.setCursorScreenPosition([1, 0])
+          keydown('R', shift: true)
+
+        it "leaves the cursor at the beginning of line", ->
+          keydown('escape')
+          expect(editor.getCursorScreenPosition()).toEqual [1, 0]
+
+      describe "on a line with content", ->
+        beforeEach ->
+          keydown('R', shift: true)
+          editor.setCursorScreenPosition([0, 0])
+          atom.commands.dispatch(editorElement, "editor:move-to-end-of-line")
 
 
-        it "allows the cursor to be placed on the \n character", ->
+        it "allows the cursor to be placed on the \\n character", ->
           expect(editor.getCursorScreenPosition()).toEqual [0, 6]
 
           expect(editor.getCursorScreenPosition()).toEqual [0, 6]
 
-    it "puts the editor into command mode when <escape> is pressed", ->
+    it "puts the editor into normal mode when <escape> is pressed", ->
+      keydown('R', shift: true)
       keydown('escape')
 
       keydown('escape')
 
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
       expect(editorElement.classList.contains('insert-mode')).toBe(false)
       expect(editorElement.classList.contains('insert-mode')).toBe(false)
+      expect(editorElement.classList.contains('replace-mode')).toBe(false)
       expect(editorElement.classList.contains('visual-mode')).toBe(false)
 
       expect(editorElement.classList.contains('visual-mode')).toBe(false)
 
-    it "puts the editor into command mode when <ctrl-c> is pressed", ->
+    it "puts the editor into normal mode when <ctrl-c> is pressed", ->
+      keydown('R', shift: true)
       helpers.mockPlatform(editorElement, 'platform-darwin')
       keydown('c', ctrl: true)
       helpers.unmockPlatform(editorElement)
 
       helpers.mockPlatform(editorElement, 'platform-darwin')
       keydown('c', ctrl: true)
       helpers.unmockPlatform(editorElement)
 
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
       expect(editorElement.classList.contains('insert-mode')).toBe(false)
       expect(editorElement.classList.contains('insert-mode')).toBe(false)
+      expect(editorElement.classList.contains('replace-mode')).toBe(false)
       expect(editorElement.classList.contains('visual-mode')).toBe(false)
 
   describe "visual-mode", ->
       expect(editorElement.classList.contains('visual-mode')).toBe(false)
 
   describe "visual-mode", ->
@@ -224,21 +298,21 @@ describe "VimState", ->
       expect(editor.getSelectedBufferRanges()).toEqual [[[0, 4], [0, 5]]]
       expect(editor.getSelectedText()).toBe("t")
 
       expect(editor.getSelectedBufferRanges()).toEqual [[[0, 4], [0, 5]]]
       expect(editor.getSelectedText()).toBe("t")
 
-    it "puts the editor into command mode when <escape> is pressed", ->
+    it "puts the editor into normal mode when <escape> is pressed", ->
       keydown('escape')
 
       expect(editor.getCursorBufferPositions()).toEqual [[0, 4]]
       keydown('escape')
 
       expect(editor.getCursorBufferPositions()).toEqual [[0, 4]]
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
       expect(editorElement.classList.contains('visual-mode')).toBe(false)
 
       expect(editorElement.classList.contains('visual-mode')).toBe(false)
 
-    it "puts the editor into command mode when <escape> is pressed on selection is reversed", ->
+    it "puts the editor into normal mode when <escape> is pressed on selection is reversed", ->
       expect(editor.getSelectedText()).toBe("t")
       keydown("h")
       keydown("h")
       expect(editor.getSelectedText()).toBe("e t")
       expect(editor.getLastSelection().isReversed()).toBe(true)
       keydown('escape')
       expect(editor.getSelectedText()).toBe("t")
       keydown("h")
       keydown("h")
       expect(editor.getSelectedText()).toBe("e t")
       expect(editor.getLastSelection().isReversed()).toBe(true)
       keydown('escape')
-      expect(editorElement.classList.contains('command-mode')).toBe(true)
+      expect(editorElement.classList.contains('normal-mode')).toBe(true)
       expect(editor.getCursorBufferPositions()).toEqual [[0, 2]]
 
     describe "motions", ->
       expect(editor.getCursorBufferPositions()).toEqual [[0, 2]]
 
     describe "motions", ->
@@ -253,7 +327,6 @@ describe "VimState", ->
         keydown("l")
         expect(editor.getSelectedText()).toBe("t")
 
         keydown("l")
         expect(editor.getSelectedText()).toBe("t")
 
-        keydown("l")
         keydown("l")
         expect(editor.getSelectedText()).toBe("tw")
 
         keydown("l")
         expect(editor.getSelectedText()).toBe("tw")
 
@@ -267,7 +340,7 @@ describe "VimState", ->
       it "operate on the current selection", ->
         expect(editor.getText()).toEqual "\nabcdef"
 
       it "operate on the current selection", ->
         expect(editor.getText()).toEqual "\nabcdef"
 
-    describe "returning to command-mode", ->
+    describe "returning to normal-mode", ->
       beforeEach ->
         editor.setText("012345\n\nabcdef")
         editor.selectLinesContainingCursors()
       beforeEach ->
         editor.setText("012345\n\nabcdef")
         editor.selectLinesContainingCursors()
@@ -302,39 +375,65 @@ describe "VimState", ->
           [0, 8]
         ])
 
           [0, 8]
         ])
 
+      it "harmonizes selection directions", ->
+        keydown("e")
+        editor.addCursorAtBufferPosition([0, Infinity])
+        keydown("h")
+        keydown("h")
+
+        expect(editor.getSelectedBufferRanges()).toEqual([
+          [[0, 4], [0, 5]],
+          [[0, 11], [0, 13]]
+        ])
+        expect(editor.getCursorBufferPositions()).toEqual([
+          [0, 5]
+          [0, 11]
+        ])
+
+        keydown("o")
+
+        expect(editor.getSelectedBufferRanges()).toEqual([
+          [[0, 4], [0, 5]],
+          [[0, 11], [0, 13]]
+        ])
+        expect(editor.getCursorBufferPositions()).toEqual([
+          [0, 5]
+          [0, 13]
+        ])
+
     describe "activate visualmode witin visualmode", ->
       beforeEach ->
         keydown('escape')
     describe "activate visualmode witin visualmode", ->
       beforeEach ->
         keydown('escape')
-        expect(vimState.mode).toEqual 'command'
-        expect(editorElement.classList.contains('command-mode')).toBe(true)
+        expect(vimState.mode).toEqual 'normal'
+        expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
 
-      it "activateVisualMode with same type puts the editor into command mode", ->
+      it "activateVisualMode with same type puts the editor into normal mode", ->
         keydown('v')
         expect(editorElement.classList.contains('visual-mode')).toBe(true)
         expect(vimState.submode).toEqual 'characterwise'
         keydown('v')
         expect(editorElement.classList.contains('visual-mode')).toBe(true)
         expect(vimState.submode).toEqual 'characterwise'
-        expect(editorElement.classList.contains('command-mode')).toBe(false)
+        expect(editorElement.classList.contains('normal-mode')).toBe(false)
 
         keydown('v')
 
         keydown('v')
-        expect(vimState.mode).toEqual 'command'
-        expect(editorElement.classList.contains('command-mode')).toBe(true)
+        expect(vimState.mode).toEqual 'normal'
+        expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
         keydown('V', shift: true)
         expect(editorElement.classList.contains('visual-mode')).toBe(true)
         expect(vimState.submode).toEqual 'linewise'
 
         keydown('V', shift: true)
         expect(editorElement.classList.contains('visual-mode')).toBe(true)
         expect(vimState.submode).toEqual 'linewise'
-        expect(editorElement.classList.contains('command-mode')).toBe(false)
+        expect(editorElement.classList.contains('normal-mode')).toBe(false)
 
         keydown('V', shift: true)
 
         keydown('V', shift: true)
-        expect(vimState.mode).toEqual 'command'
-        expect(editorElement.classList.contains('command-mode')).toBe(true)
+        expect(vimState.mode).toEqual 'normal'
+        expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
         keydown('v', ctrl: true)
         expect(editorElement.classList.contains('visual-mode')).toBe(true)
         expect(vimState.submode).toEqual 'blockwise'
 
         keydown('v', ctrl: true)
         expect(editorElement.classList.contains('visual-mode')).toBe(true)
         expect(vimState.submode).toEqual 'blockwise'
-        expect(editorElement.classList.contains('command-mode')).toBe(false)
+        expect(editorElement.classList.contains('normal-mode')).toBe(false)
 
         keydown('v', ctrl: true)
 
         keydown('v', ctrl: true)
-        expect(vimState.mode).toEqual 'command'
-        expect(editorElement.classList.contains('command-mode')).toBe(true)
+        expect(vimState.mode).toEqual 'normal'
+        expect(editorElement.classList.contains('normal-mode')).toBe(true)
 
       describe "change submode within visualmode", ->
         beforeEach ->
 
       describe "change submode within visualmode", ->
         beforeEach ->
@@ -346,22 +445,22 @@ describe "VimState", ->
           keydown('v')
           expect(editorElement.classList.contains('visual-mode')).toBe(true)
           expect(vimState.submode).toEqual 'characterwise'
           keydown('v')
           expect(editorElement.classList.contains('visual-mode')).toBe(true)
           expect(vimState.submode).toEqual 'characterwise'
-          expect(editorElement.classList.contains('command-mode')).toBe(false)
+          expect(editorElement.classList.contains('normal-mode')).toBe(false)
 
           keydown('V', shift: true)
           expect(editorElement.classList.contains('visual-mode')).toBe(true)
           expect(vimState.submode).toEqual 'linewise'
 
           keydown('V', shift: true)
           expect(editorElement.classList.contains('visual-mode')).toBe(true)
           expect(vimState.submode).toEqual 'linewise'
-          expect(editorElement.classList.contains('command-mode')).toBe(false)
+          expect(editorElement.classList.contains('normal-mode')).toBe(false)
 
           keydown('v', ctrl: true)
           expect(editorElement.classList.contains('visual-mode')).toBe(true)
           expect(vimState.submode).toEqual 'blockwise'
 
           keydown('v', ctrl: true)
           expect(editorElement.classList.contains('visual-mode')).toBe(true)
           expect(vimState.submode).toEqual 'blockwise'
-          expect(editorElement.classList.contains('command-mode')).toBe(false)
+          expect(editorElement.classList.contains('normal-mode')).toBe(false)
 
           keydown('v')
           expect(editorElement.classList.contains('visual-mode')).toBe(true)
           expect(vimState.submode).toEqual 'characterwise'
 
           keydown('v')
           expect(editorElement.classList.contains('visual-mode')).toBe(true)
           expect(vimState.submode).toEqual 'characterwise'
-          expect(editorElement.classList.contains('command-mode')).toBe(false)
+          expect(editorElement.classList.contains('normal-mode')).toBe(false)
 
 
         it "recover original range when shift from linewse to characterwise", ->
 
 
         it "recover original range when shift from linewse to characterwise", ->
@@ -389,32 +488,32 @@ describe "VimState", ->
     it "basic marking functionality", ->
       editor.setCursorScreenPosition([1, 1])
       keydown('m')
     it "basic marking functionality", ->
       editor.setCursorScreenPosition([1, 1])
       keydown('m')
-      commandModeInputKeydown('t')
+      normalModeInputKeydown('t')
       expect(editor.getText()).toEqual "text in line 1\ntext in line 2\ntext in line 3"
       editor.setCursorScreenPosition([2, 2])
       keydown('`')
       expect(editor.getText()).toEqual "text in line 1\ntext in line 2\ntext in line 3"
       editor.setCursorScreenPosition([2, 2])
       keydown('`')
-      commandModeInputKeydown('t')
+      normalModeInputKeydown('t')
       expect(editor.getCursorScreenPosition()).toEqual [1, 1]
 
     it "real (tracking) marking functionality", ->
       editor.setCursorScreenPosition([2, 2])
       keydown('m')
       expect(editor.getCursorScreenPosition()).toEqual [1, 1]
 
     it "real (tracking) marking functionality", ->
       editor.setCursorScreenPosition([2, 2])
       keydown('m')
-      commandModeInputKeydown('q')
+      normalModeInputKeydown('q')
       editor.setCursorScreenPosition([1, 2])
       keydown('o')
       keydown('escape')
       keydown('`')
       editor.setCursorScreenPosition([1, 2])
       keydown('o')
       keydown('escape')
       keydown('`')
-      commandModeInputKeydown('q')
+      normalModeInputKeydown('q')
       expect(editor.getCursorScreenPosition()).toEqual [3, 2]
 
     it "real (tracking) marking functionality", ->
       editor.setCursorScreenPosition([2, 2])
       keydown('m')
       expect(editor.getCursorScreenPosition()).toEqual [3, 2]
 
     it "real (tracking) marking functionality", ->
       editor.setCursorScreenPosition([2, 2])
       keydown('m')
-      commandModeInputKeydown('q')
+      normalModeInputKeydown('q')
       editor.setCursorScreenPosition([1, 2])
       keydown('d')
       keydown('d')
       keydown('escape')
       keydown('`')
       editor.setCursorScreenPosition([1, 2])
       keydown('d')
       keydown('d')
       keydown('escape')
       keydown('`')
-      commandModeInputKeydown('q')
+      normalModeInputKeydown('q')
       expect(editor.getCursorScreenPosition()).toEqual [1, 2]
       expect(editor.getCursorScreenPosition()).toEqual [1, 2]
index a4589375f2a03a2dfd8ac04a87659ff4f340145c..7c5db28a4e8b1ee1cd400c1134182027bb6fb168 100644 (file)
@@ -1,7 +1,7 @@
 @import "syntax-variables";
 @import "ui-variables";
 
 @import "syntax-variables";
 @import "ui-variables";
 
-.command-mode-input atom-text-editor[mini] {
+.normal-mode-input atom-text-editor[mini] {
   background-color: inherit;
   border: none;
   width: 100%;
   background-color: inherit;
   border: none;
   width: 100%;
   padding-left: 10px;
 }
 
   padding-left: 10px;
 }
 
+.vim-hidden-normal-mode-input {
+  height: 0px !important;
+  width: 0px !important;
+  overflow: hidden !important;
+  border: none !important;
+  padding: 0 !important;
+  display: block !important;
+  position: fixed !important;
+  top: -10px !important;
+  left: -10px !important;
+}
+
 .block-cursor(@visibility: visible) {
   border: 0;
   background-color: @syntax-cursor-color;
 .block-cursor(@visibility: visible) {
   border: 0;
   background-color: @syntax-cursor-color;
   opacity: 0.5;
 }
 
   opacity: 0.5;
 }
 
-atom-text-editor.vim-mode.command-mode,
+.underline-cursor(@visibility: visible) {
+  border: none;
+  border-bottom: .3em solid @syntax-cursor-color;
+  background: none;
+  visibility: @visibility;
+  opacity: 0.5;
+}
+
+.low-block-cursor(@visibility: visible) {
+  border: none;
+  border-bottom: .6em solid @syntax-cursor-color;
+  background: none;
+  visibility: @visibility;
+  opacity: 0.5;
+}
+
+atom-text-editor.vim-mode.normal-mode,
 atom-text-editor.vim-mode.operator-pending-mode,
 atom-text-editor.vim-mode.visual-mode,
 {
   &::shadow, // shadow-DOM enabled
   &           // shadow-DOM disabled
   {
 atom-text-editor.vim-mode.operator-pending-mode,
 atom-text-editor.vim-mode.visual-mode,
 {
   &::shadow, // shadow-DOM enabled
   &           // shadow-DOM disabled
   {
-    .cursor, .cursor.blink-off {
+    .cursor {
       .block-cursor(hidden);
     }
   }
 }
 
       .block-cursor(hidden);
     }
   }
 }
 
-atom-text-editor.vim-mode.command-mode.is-focused,
+atom-text-editor.vim-mode.normal-mode.is-focused,
 atom-text-editor.vim-mode.operator-pending-mode.is-focused,
 atom-text-editor.vim-mode.visual-mode.is-focused
 {
   &::shadow, // shadow-DOM enabled
   &           // shadow-DOM disabled
   {
 atom-text-editor.vim-mode.operator-pending-mode.is-focused,
 atom-text-editor.vim-mode.visual-mode.is-focused
 {
   &::shadow, // shadow-DOM enabled
   &           // shadow-DOM disabled
   {
-    .cursor, .cursor.blink-off {
+    .cursor {
       .block-cursor;
     }
   }
       .block-cursor;
     }
   }
@@ -56,3 +84,63 @@ atom-text-editor.vim-mode.visual-mode
     }
   }
 }
     }
   }
 }
+
+atom-text-editor.vim-mode.replace-mode
+{
+  &::shadow, // shadow-DOM enabled
+  &           // shadow-DOM disabled
+  {
+    .cursor {
+      .underline-cursor(hidden);
+    }
+  }
+}
+
+atom-text-editor.vim-mode.replace-mode.is-focused
+{
+  &::shadow, // shadow-DOM enabled
+  &           // shadow-DOM disabled
+  {
+    .cursor {
+      .underline-cursor;
+    }
+
+    .cursors.blink-off .cursor {
+      .underline-cursor(hidden);
+    }
+  }
+}
+
+atom-text-editor.vim-mode.operator-pending-mode
+{
+  &::shadow, // shadow-DOM enabled
+  &           // shadow-DOM disabled
+  {
+    .cursor {
+      .low-block-cursor(hidden);
+    }
+  }
+}
+
+atom-text-editor.vim-mode.operator-pending-mode.is-focused
+{
+  &::shadow, // shadow-DOM enabled
+  &           // shadow-DOM disabled
+  {
+    .cursor {
+      .low-block-cursor;
+    }
+
+    .cursors.blink-off .cursor {
+      .low-block-cursor(hidden);
+    }
+  }
+}
+
+.search-input atom-text-editor[mini]::before {
+  content: '/';
+}
+
+.reverse-search-input atom-text-editor[mini]::before {
+  content: '?';
+}
index c669642d41ba7bf76b5c235d15a13b3626d86474..b093333ae48c87b7f52f1ab87bbdf5f9f617377e 100644 (file)
@@ -1,3 +1,14 @@
+## 0.8.0
+* Tentative support for
+  [vim-mode-next](https://atom.io/packages/vim-mode-next). See
+  [#28](https://github.com/gepoch/vim-surround/issues/28).
+
+## 0.7.4
+* Bugfixes.
+
+## 0.7.3
+* Fixed problems cause by vim-mode changing "command-mode" to "normal-mode".
+
 ## 0.7.1
 * Propagate README changes.
 
 ## 0.7.1
 * Propagate README changes.
 
index 193f733f3cb3538dfefaac4647fb5d410dc250eb..04188319fb7988208d333ff7733a6e1a12c9c639 100644 (file)
@@ -26,6 +26,10 @@ See vim-surround on [github](https://github.com/gepoch/vim-surround) or
 
 * New in 0.7: Change surround and delete surround added.
 
 
 * New in 0.7: Change surround and delete surround added.
 
+* New in 0.8: Tentative support for
+  [vim-mode-next](https://atom.io/packages/vim-mode-next). See
+  [#28](https://github.com/gepoch/vim-surround/issues/28).
+
 ### Muscle Memory Compatability Note
 
 vim-surround uses a lowercase `s` instead of `S` for surround commands! This is
 ### Muscle Memory Compatability Note
 
 vim-surround uses a lowercase `s` instead of `S` for surround commands! This is
index b1860f57f110446e93dbe53e9de579c66bcf90f2..7bdf623e1df1b28dde3990b9c4e99de6f6722156 100644 (file)
@@ -6,7 +6,7 @@ Selector = require './selector'
 module.exports = class Change
   constructor: (config) ->
     @command = config.changeSurroundCommand
 module.exports = class Change
   constructor: (config) ->
     @command = config.changeSurroundCommand
-    @context = "atom-text-editor.vim-mode.command-mode"
+    @context = "atom-text-editor.vim-mode.normal-mode"
     @disposables = new CompositeDisposable
     @curPairs = []
     @curPairsWithTarget = []
     @disposables = new CompositeDisposable
     @curPairs = []
     @curPairsWithTarget = []
index aa5eec0ade79935114e24e42fa14c688fea499e0..744b3a1e45898e02dd01eb4c216655ba8b993716 100644 (file)
@@ -1,4 +1,4 @@
-{CompositeDisposable} = require 'atom'
+{compositedisposable} = require 'atom'
 
 Base = require './base'
 Selector = require './selector'
 
 Base = require './base'
 Selector = require './selector'
@@ -6,7 +6,7 @@ Selector = require './selector'
 module.exports = class Delete extends Base
   constructor: (config) ->
     @command = config.deleteSurroundCommand
 module.exports = class Delete extends Base
   constructor: (config) ->
     @command = config.deleteSurroundCommand
-    @context = "atom-text-editor.vim-mode.command-mode"
+    @context = "atom-text-editor.vim-mode.normal-mode"
     super config
 
   getName: (key) -> "delete-#{key}"
     super config
 
   getName: (key) -> "delete-#{key}"
index aae35412a5590b18dbb710c459b1cb8a2fde75ea..bcb3c156fe5e96962864b52d84d77fc9c308bb27 100644 (file)
@@ -1,4 +1,6 @@
-vimModePath = atom.packages.resolvePackagePath('vim-mode')
+vimModePath = atom.packages.resolvePackagePath('vim-mode') or
+              atom.packages.resolvePackagePath('vim-mode-next')
+
 {SelectInsideQuotes, SelectInsideBrackets} = require "#{vimModePath}/lib/text-objects"
 
 module.exports = class Selector
 {SelectInsideQuotes, SelectInsideBrackets} = require "#{vimModePath}/lib/text-objects"
 
 module.exports = class Selector
index b9fd33258f69698e213c0ad0a1c3a48b552efa48..f2931946bf8f935f0da922d45e6fa4c891a3b0c9 100644 (file)
@@ -20,6 +20,9 @@ module.exports =
     surroundCommand:
       type: 'string'
       default: 's'
     surroundCommand:
       type: 'string'
       default: 's'
+    deleteCommand:
+      type: 'string'
+      default: 'd s'
 
   activate: (state) ->
     @commandClasses = [
 
   activate: (state) ->
     @commandClasses = [
@@ -37,5 +40,6 @@ module.exports =
         @commands.push command
         @disposables.add command.disposables
 
         @commands.push command
         @disposables.add command.disposables
 
-  deactivate: () ->
-    @disposables.dispose()
+  consumeVimMode: (vimMode) -> @vimMode = vimMode
+
+  deactivate: () -> @disposables.dispose()
index ead55b96c1e6f482099cd4bdd563a904b60ba5ca..b142af6ed5d117b23fc18305feb55db43bdc5341 100644 (file)
@@ -1,11 +1,11 @@
 {
   "name": "vim-surround",
   "main": "./lib/vim-surround",
 {
   "name": "vim-surround",
   "main": "./lib/vim-surround",
-  "version": "0.7.2",
+  "version": "0.8.0",
   "description": "vim-surround for Atom!",
   "repository": {
     "type": "git",
   "description": "vim-surround for Atom!",
   "repository": {
     "type": "git",
-    "url": "https://github.com/gepoch/vim-surround"
+    "url": "git+https://github.com/gepoch/vim-surround.git"
   },
   "license": "MIT",
   "keywords": [
   },
   "license": "MIT",
   "keywords": [
   },
   "dependencies": {},
   "consumedServices": {},
   },
   "dependencies": {},
   "consumedServices": {},
-  "readme": "# Vim Surround for Atom [![Build Status](https://travis-ci.org/gepoch/vim-surround.svg?branch=master)](https://travis-ci.org/gepoch/vim-surround)\n\nSurround is an implementation of vim-surround for the [atom](http://atom.io)\neditor, creating a vim-surround with the power of Atom!\n\nYou should definitely have [vim-mode](https://atom.io/packages/vim-mode) for\nthis package to function properly, of course.\n\nInspiration from and kudos to the wonderful [vim-surround for\nvim](https://github.com/tpope/vim-surround)\n\nSee vim-surround on [github](https://github.com/gepoch/vim-surround) or\n[atom.io](https://atom.io/packages/vim-surround).\n\n## News\n\n* This package supports visual mode's `s )` set of commands for a configurable\n  set of pairs.\n\n* Next on the roadmap are pair deletions with `d )` and friends.\n\n* New in 0.4: Multiple cursors are now supported, and conveniently work just\n  like you think they do.\n\n* New in 0.5: Stable configuration changes and configurable surround key!\n\n* New in 0.7: Change surround and delete surround added.\n\n### Muscle Memory Compatability Note\n\nvim-surround uses a lowercase `s` instead of `S` for surround commands! This is\nconfigurable in the package settings, if you would like to set it to the\noriginal keybinding.\n\n## How to use Surround\n\n### Surrounding\n\nFor double quotes, highlight the string in visual mode and enter `s \"`.\n\n```\nHello world -> \"Hello world\"\n```\n\nFor parentheses there are two options. `s )` will surround as normal. `s (`\nwill pad with a space. All asymmetrical pairs have the secondary space-padded\nform.\n\nFor example:\n\n`s )`\n\n```\nHello world -> (Hello world)\n```\n\n`s (`\n\n```\nHello world -> ( Hello world )\n```\n\n### Changing Surrounding Pairs\n\nSuppose I want to make double quotes into single quotes. To do this, I should\nput my cursor inside the double quotes in question and enter `c s \" '`\n\n```\n\"Hello world\" -> 'Hello world'\n```\n\n### Deleting Surrounding Pairs\n\nTo delete the single quotes, place your cursor inside of them and enter `d s '`\n\n```\n'Hello world' -> Hello world\n```\n### Configuration\n\nCurrently, the following pairs work out of the box!:\n\n- ()\n- []\n- {}\n- \"\"\n- ''\n\nYou can add to the available pairs in atom's settings, and the commands will\nbe dynamically added to your keybindings.\n\nFor example if I'm working on Jinja templates, and I want to add the ability to\nsurround using `{%` and `%}` I would add this in my settings:\n\n```\n(), [], {}, \"\", '', {%%}\n```\n\nThen:\n\n`s % }`\n\n```\nHello world -> {%Hello world%}\n```\n\n`s { %`\n\n```\nHello world -> {% Hello world %}\n```\n\n### TODO\n\n- [x] Implement deleting surrounding pairs with `d s`\n- [x] Implement changing surrounding pairs with `c s`\n- [ ] Intelligent tag surrounding/deleting/replacing with `s <q>` and friends.\n",
+  "readme": "# Vim Surround for Atom [![Build Status](https://travis-ci.org/gepoch/vim-surround.svg?branch=master)](https://travis-ci.org/gepoch/vim-surround)\n\nSurround is an implementation of vim-surround for the [atom](http://atom.io)\neditor, creating a vim-surround with the power of Atom!\n\nYou should definitely have [vim-mode](https://atom.io/packages/vim-mode) for\nthis package to function properly, of course.\n\nInspiration from and kudos to the wonderful [vim-surround for\nvim](https://github.com/tpope/vim-surround)\n\nSee vim-surround on [github](https://github.com/gepoch/vim-surround) or\n[atom.io](https://atom.io/packages/vim-surround).\n\n## News\n\n* This package supports visual mode's `s )` set of commands for a configurable\n  set of pairs.\n\n* Next on the roadmap are pair deletions with `d )` and friends.\n\n* New in 0.4: Multiple cursors are now supported, and conveniently work just\n  like you think they do.\n\n* New in 0.5: Stable configuration changes and configurable surround key!\n\n* New in 0.7: Change surround and delete surround added.\n\n* New in 0.8: Tentative support for\n  [vim-mode-next](https://atom.io/packages/vim-mode-next). See\n  [#28](https://github.com/gepoch/vim-surround/issues/28).\n\n### Muscle Memory Compatability Note\n\nvim-surround uses a lowercase `s` instead of `S` for surround commands! This is\nconfigurable in the package settings, if you would like to set it to the\noriginal keybinding.\n\n## How to use Surround\n\n### Surrounding\n\nFor double quotes, highlight the string in visual mode and enter `s \"`.\n\n```\nHello world -> \"Hello world\"\n```\n\nFor parentheses there are two options. `s )` will surround as normal. `s (`\nwill pad with a space. All asymmetrical pairs have the secondary space-padded\nform.\n\nFor example:\n\n`s )`\n\n```\nHello world -> (Hello world)\n```\n\n`s (`\n\n```\nHello world -> ( Hello world )\n```\n\n### Changing Surrounding Pairs\n\nSuppose I want to make double quotes into single quotes. To do this, I should\nput my cursor inside the double quotes in question and enter `c s \" '`\n\n```\n\"Hello world\" -> 'Hello world'\n```\n\n### Deleting Surrounding Pairs\n\nTo delete the single quotes, place your cursor inside of them and enter `d s '`\n\n```\n'Hello world' -> Hello world\n```\n### Configuration\n\nCurrently, the following pairs work out of the box!:\n\n- ()\n- []\n- {}\n- \"\"\n- ''\n\nYou can add to the available pairs in atom's settings, and the commands will\nbe dynamically added to your keybindings.\n\nFor example if I'm working on Jinja templates, and I want to add the ability to\nsurround using `{%` and `%}` I would add this in my settings:\n\n```\n(), [], {}, \"\", '', {%%}\n```\n\nThen:\n\n`s % }`\n\n```\nHello world -> {%Hello world%}\n```\n\n`s { %`\n\n```\nHello world -> {% Hello world %}\n```\n\n### TODO\n\n- [x] Implement deleting surrounding pairs with `d s`\n- [x] Implement changing surrounding pairs with `c s`\n- [ ] Intelligent tag surrounding/deleting/replacing with `s <q>` and friends.\n",
   "readmeFilename": "README.md",
   "bugs": {
     "url": "https://github.com/gepoch/vim-surround/issues"
   },
   "readmeFilename": "README.md",
   "bugs": {
     "url": "https://github.com/gepoch/vim-surround/issues"
   },
-  "homepage": "https://github.com/gepoch/vim-surround",
-  "_id": "vim-surround@0.7.2",
-  "_shasum": "34c0ad724ca6be2fbe6f708455bddc5f5964eb19",
-  "_resolved": "file:../d-11562-86965-1746m6m/package.tgz",
-  "_from": "../d-11562-86965-1746m6m/package.tgz",
+  "homepage": "https://github.com/gepoch/vim-surround#readme",
+  "_id": "vim-surround@0.8.0",
+  "_shasum": "13e7554fb6a90ba6178fb2b8bddb87ca45e3d0d3",
+  "_resolved": "file:../d-115828-94497-mmttc8/package.tgz",
+  "_from": "../d-115828-94497-mmttc8/package.tgz",
   "_atomModuleCache": {
     "version": 1,
     "dependencies": [],
   "_atomModuleCache": {
     "version": 1,
     "dependencies": [],